Skapa TOC i Word

En Innehållsförteckning (TOC) är en viktig funktion i Word-dokument, särskilt för långa dokument som rapporter, avhandlingar och e-böcker. Det gör Word-dokument mer läsbara och gör det möjligt för läsare att snabbt navigera genom olika avsnitt av dokumentet. I det här inlägget kommer du att lära dig hur du automatiserar TOC i Word-dokument programmässigt med Python. Vi kommer att gå igenom stegen för att skapa en innehållsförteckning i ett Word-dokument, infoga TOC i ett befintligt dokument eller extrahera TOC från ett dokument i Python.

Denna artikel täcker följande ämnen:

Python Word-bibliotek för att arbeta med TOC

För att arbeta med TOC i Word-dokument med Python kommer vi att använda Aspose.Words för Python biblioteket. Det tillåter utvecklare att skapa, modifiera och automatisera Word-dokument i Python-applikationer. Låt oss börja med att sätta upp vår miljö.

Innan vi dyker in i koden, se till att du har Aspose.Words för Python installerat. Du kan ladda ner paketet eller installera API:et från PyPI med följande pip-kommandot i din terminal:

pip install aspose-words

Detta kommer att ladda ner och installera Aspose.Words för Python-biblioteket och dess beroenden.

Skapa en Innehållsförteckning i Word med Python

Följ stegen nedan för att lägga till en innehållsförteckning i ett Word-dokument med Python.

  1. Skapa en instans av Document-klassen.
  2. Skapa en instans av DocumentBuilder-klassen med Document-objektet.
  3. Infoga en innehållsförteckning med hjälp av metoden insert_table_of_contents().
  4. Specificera rubrikstilar med hjälp av egenskapen style_identifier.
  5. Uppdatera fälten med hjälp av metoden update_fields().
  6. Spara Word-dokumentet med hjälp av metoden save().

Följande kodexempel visar hur du skapar en innehållsförteckning i ett Word-dokument med Python.

# This code example shows how to add a Table of Contents in a Word document.
# Create a document
doc = aw.Document()
# Initialize a document builder
builder = aw.DocumentBuilder(doc)
# Insert table of contents
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u")
# Start the actual document content on the second page.
builder.insert_break(aw.BreakType.PAGE_BREAK)
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 1")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 1.1")
builder.writeln("Heading 1.2")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING1
builder.writeln("Heading 2")
builder.writeln("Heading 3")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.1")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING3
builder.writeln("Heading 3.1.1")
builder.writeln("Heading 3.1.2")
builder.writeln("Heading 3.1.3")
builder.paragraph_format.style_identifier = aw.StyleIdentifier.HEADING2
builder.writeln("Heading 3.2")
builder.writeln("Heading 3.3")
# The newly inserted table of contents will be initially empty.
# It needs to be populated by updating the fields in the document.
doc.update_fields()
# Save the document
doc.save("insert_table_of_contents.docx")
Skapa en Innehållsförteckning i Word med Python.

Lägg till en Innehållsförteckning i Word med Python

Skapa en Innehållsförteckning i ett Befintligt Word-dokument

Du kan också infoga en innehållsförteckning i ett befintligt Word-dokument genom att följa stegen nedan:

  1. Ladda ett befintligt Word-dokument med hjälp av Document-klassen.
  2. Skapa en instans av DocumentBuilder-klassen och initiera den med det Document-objekt som skapades tidigare.
  3. Infoga en innehållsförteckning med hjälp av metoden insert_table_of_contents().
  4. Uppdatera fälten med hjälp av metoden update_fields().
  5. Spara Word-dokumentet med hjälp av metoden save().

Följande kodexempel visar hur du skapar en innehållsförteckning i ett befintligt Word-dokument med Python.

# This code example shows how to insert a Table of Contents in an existing Word document.
# Load an existing Word document
doc = Document("toc_sample.docx");
builder = DocumentBuilder(doc);
# Insert a table of contents at the beginning of the document.
builder.insert_table_of_contents("\\o \"1-3\" \\h \\z \\u");
# The newly inserted table of contents will be initially empty.
# It needs to be populated by updating the fields in the document.
doc.update_fields();
# Save the document
doc.save("InsertTOC_out.docx");
Skapa en Innehållsförteckning i ett Befintligt Word-dokument.

Skapa en Innehållsförteckning i ett Befintligt Word-dokument

Extrahera Innehållsförteckningen från ett Word-dokument i Python

Du kan extrahera fält från en innehållsförteckning i ett Word-dokument genom att följa stegen nedan:

  1. Ladda Word-dokumentet med hjälp av Document-klassen.
  2. Loop genom doc.range.fields-samlingen.
  3. Kontrollera om fälttypen är FIELD_HYPERLINK.
  4. Kontrollera om fältet hör till innehållsförteckningssektionen.
  5. Hämta informationen från fältet och skriv ut det.

Följande kodexempel visar hur du extraherar en innehållsförteckning från ett Word-dokument med Python.

# This code example shows how to extract a Table of Contents from a Word document.
# Load an existing Word document
doc = aw.Document(InsertTOC_out.docx")
# Loop through all the fields
for field in doc.range.fields:
# Check if it is FIELD_HYPERLINK
if (field.type == aw.fields.FieldType.FIELD_HYPERLINK):
hyperlink = field.as_field_hyperlink()
# Check if it in TOC section
if (hyperlink.sub_address != None and hyperlink.sub_address.find("_Toc") == 0):
tocItem = field.start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph()
print(tocItem.to_string(aw.SaveFormat.TEXT).strip())
print("------------------")
# Print
bm = doc.range.bookmarks.get_by_name(hyperlink.sub_address)
pointer = bm.bookmark_start.get_ancestor(aw.NodeType.PARAGRAPH).as_paragraph()
print(pointer.to_string(aw.SaveFormat.TEXT))
Rubrik 1        1
------------------
Rubrik 1

Rubrik2         1
------------------
Rubrik2

En annan Rubrik 1
------------------
En annan Rubrik

Få en Gratis Licens

Du kan få en gratis tillfällig licens och skapa en innehållsförteckning i Word-dokument utan utvärderingsbegränsningar.

TOC i Word – Gratis Resurser

Förutom att arbeta med TOC i Word-dokument, utforska fler funktioner av Aspose.Words för Python med hjälp av resurserna nedan:

Slutsats

I den här artikeln har du lärt dig hur du arbetar med en innehållsförteckning (TOC) i ett Word-dokument programmässigt. Genom att följa stegen som beskrivs i artikeln kan du automatisera processen att skapa och hantera långa dokument. Aspose.Words för Python gör det möjligt för dig att effektivt hantera dina Word-dokument och förbättra deras användbarhet med en välstrukturerad Innehållsförteckning. Om du har några frågor eller behöver ytterligare hjälp, tveka inte att kontakta oss på vårt gratis supportforum.

Se Även