Hướng dẫn python word update table of contents - python word cập nhật mục lục

Tôi sử dụng gói Python "Python-docx" để sửa đổi nội dung AMD cấu trúc của các tài liệu MS .Docx. Gói thiếu khả năng cập nhật TOC [Bảng nội dung] [Python: Tạo một "Bảng nội dung" với Python-DOCX/LXML.

Có cách giải quyết để cập nhật TOC của một tài liệu không? Tôi đã nghĩ về việc sử dụng "win32com.client" từ gói python "pywin32" [//pypi.python.org/pypi/pypiwin32] hoặc gói PYPI có thể so sánh cung cấp "kiểm soát CLI" cho MS Office.

Tôi đã thử như sau:

Tôi đã thay đổi tài liệu.docx thành document.docm và triển khai macro sau [//word.tips.net/t000301_updating_an_entire_toc_from_a_macro.html]:

Sub update_TOC[]

If ActiveDocument.TablesOfContents.Count = 1 Then _
  ActiveDocument.TablesOfContents[1].Update

End Sub

Nếu tôi thay đổi nội dung [thêm/xóa các tiêu đề] và chạy macro, TOC sẽ được cập nhật. Tôi lưu tài liệu và tôi hạnh phúc.

Tôi thực hiện mã python sau đây tương đương với macro:

import win32com.client

def update_toc[docx_file]:
    word = win32com.client.DispatchEx["Word.Application"]
    doc = word.Documents.Open[docx_file]
    toc_count = doc.TablesOfContents.Count
    if toc_count == 1:
        toc = doc.TablesOfContents[1]
        toc.Update
        print['TOC should have been updated.']
    else:
        print['TOC has not been updated for sure...']

update_toc [docx_file] được gọi trong tập lệnh cấp cao hơn [điều khiển nội dung liên quan đến TOC của tài liệu]. Sau khi chức năng này gọi tài liệu được lưu [doc.save []], đóng [doc.close []] và phiên bản từ được đóng [word.quit []]. Tuy nhiên TOC không được cập nhật.

MS Word có thực hiện các hành động bổ sung sau khi thực hiện macro mà tôi không xem xét không?

Chèn và làm việc với trường Bảng nội dung

Thường thì bạn sẽ làm việc với các tài liệu có chứa một bảng nội dung [TOC]. Sử dụng aspose.words Bạn có thể chèn bảng nội dung của riêng mình hoặc xây dựng lại hoàn toàn mục lục hiện tại trong tài liệu chỉ bằng một vài dòng mã. & NBSP; Bài viết này phác thảo cách làm việc với trường Bảng nội dung và trình bày:

  • Cách chèn một toc hoàn toàn mới
  • Cập nhật TOC mới hoặc hiện có trong tài liệu.
  • Chỉ định các công tắc để kiểm soát định dạng và cấu trúc tổng thể f TOC.
  • Làm thế nào để sửa đổi các kiểu và sự xuất hiện của bảng nội dung.
  • Làm thế nào để xóa toàn bộ trường TOC cùng với tất cả các mục nhập tạo thành tài liệu.

Chèn một bảng nội dung theo chương trình

Bạn có thể chèn một trường TOC [Mục lục] vào tài liệu tại vị trí hiện tại bằng cách gọi & nbsp; documentBuilder.insert_table_of_contents & nbsp; phương thức.

Một bảng nội dung trong một tài liệu Word có thể được xây dựng theo một số cách và được định dạng bằng nhiều tùy chọn khác nhau. Trường chuyển đổi mà bạn chuyển sang điều khiển phương thức theo cách xây dựng bảng và hiển thị trong tài liệu của bạn.

Các công tắc mặc định được sử dụng trong TOC được chèn vào Microsoft Word là trên \ O, 1-3 \ H \ Z \ u. Mô tả về các công tắc này cũng như một danh sách các công tắc được hỗ trợ có thể được tìm thấy sau trong bài viết. Bạn có thể sử dụng hướng dẫn đó có được các công tắc chính xác hoặc nếu bạn đã có một tài liệu có chứa TOC tương tự mà bạn muốn bạn có thể hiển thị mã trường [ALT+F9] và sao chép các công tắc trực tiếp từ trường. Mẫu mã dưới đây cho thấy cách chèn một bảng nội dung [TOC] vào một tài liệu bằng cách sử dụng các kiểu tiêu đề làm mục.“\o “1-3 \h \z \u”. Descriptions of these switches as well as a list of supported switches can be found later in the article. You can either use that guide obtain the correct switches or if you already have a document containing the similar TOC that you want you can show field codes [ALT+F9] and copy the switches directly from the field. Below code sample shows how to insert a Table of contents [TOC] into a document using heading styles as entries.

Mã thể hiện bảng nội dung mới được chèn vào một tài liệu trống. Lớp DocumentBuilder sau đó được sử dụng để chèn một số định dạng nội dung mẫu với các kiểu tiêu đề phù hợp được sử dụng để đánh dấu nội dung sẽ được đưa vào TOC. Các dòng tiếp theo sau đó điền vào TOC bằng cách cập nhật các trường và bố cục trang của tài liệu.

Nếu không có các cuộc gọi này khi tài liệu đầu ra được mở, bạn sẽ thấy rằng sẽ có một trường TOC nhưng không có nội dung hiển thị. Điều này là do trường TOC đã được chèn nhưng chưa được điền cho đến khi nó được cập nhật trong tài liệu. Thông tin thêm về điều này được thảo luận trong phần tiếp theo.

Cập nhật bảng nội dung

Aspose.words cho phép bạn cập nhật hoàn toàn một TOC chỉ với một vài dòng mã. Điều này có thể được thực hiện để điền vào TOC mới được chèn hoặc để cập nhật TOC hiện có sau khi các thay đổi đối với tài liệu đã được thực hiện. & NBSP; hai phương thức sau phải được sử dụng để cập nhật các trường TOC trong tài liệu:

  1. Document.update_fields
  2. Document.update_page_layout

Xin lưu ý rằng hai phương thức cập nhật này được yêu cầu được gọi theo thứ tự đó. Nếu đảo ngược, bảng nội dung sẽ được điền nhưng không có số trang nào được hiển thị. Bất kỳ số lượng TOC khác nhau có thể được cập nhật. Các phương thức này sẽ tự động cập nhật tất cả các TOC được tìm thấy trong tài liệu. & NBSP; Mẫu mã bên dưới cho thấy cách xây dựng lại hoàn toàn các trường TOC trong tài liệu bằng cách gọi cập nhật trường.

Cuộc gọi đầu tiên đến Document.Update_Fields sẽ xây dựng TOC, tất cả các mục văn bản đều được điền và TOC xuất hiện gần như hoàn tất. Điều duy nhất còn thiếu là các số trang mà bây giờ được hiển thị với? các mục. Các số trang chính xác được tính toán từ cuộc gọi này sau đó được chèn vào TOC.

Sử dụng các công tắc để kiểm soát hành vi của bảng nội dung.

Như với bất kỳ trường nào khác, trường TOC có thể chấp nhận các công tắc được xác định trong mã trường kiểm soát cách xây dựng bảng nội dung. Một số công tắc được sử dụng để kiểm soát các mục nào được bao gồm và ở cấp độ nào trong khi các công tắc khác được sử dụng để kiểm soát sự xuất hiện của TOC. Các công tắc có thể được kết hợp với nhau để cho phép bảng nội dung phức tạp được sản xuất.

Theo mặc định, các công tắc ở trên được bao gồm khi chèn TOC mặc định vào tài liệu. Một TOC không có công tắc sẽ bao gồm nội dung từ các kiểu tiêu đề tích hợp [như thể công tắc \ o được đặt]. & NBSP; Các công tắc TOC có sẵn được hỗ trợ bởi Aspose.words được liệt kê bên dưới và việc sử dụng của chúng được mô tả chi tiết. Chúng có thể được chia thành các phần riêng biệt dựa trên loại của chúng. Các công tắc trong phần đầu tiên xác định nội dung nào sẽ bao gồm trong TOC và các công tắc trong phần thứ hai kiểm soát sự xuất hiện của TOC. & NBSP; nếu một công tắc không được liệt kê ở đây thì hiện tại nó không được hỗ trợ. & NBSP; Tất cả các công tắc sẽ được hỗ trợ trong các phiên bản trong tương lai. Chúng tôi đang thêm hỗ trợ thêm với mỗi bản phát hành.

Công tắc đánh dấu nhập cảnh

Công tắcSự mô tả
Kiểu tiêu đề [\ O Switch] & nbsp;
[\O Switch] 

Công tắc này xác định rằng TOC nên được xây dựng từ các kiểu tiêu đề tích hợp. Trong Microsoft Word, chúng được xác định bằng cách tiêu đề 1 - tiêu đề 9. Trong Aspose.words, các kiểu này được thể hiện bằng bảng liệt kê styledentifier tương ứng. Việc liệt kê này đại diện cho một định danh độc lập địa phương của một phong cách, ví dụ Styleidentifier.eading1 đại diện cho kiểu tiêu đề 1. Sử dụng điều này, định dạng và thuộc tính của phong cách có thể được lấy từ bộ sưu tập kiểu của tài liệu. Lớp kiểu tương ứng có thể được lấy từ bộ sưu tập tài liệu.

Bất kỳ nội dung được định dạng với các kiểu này đều được bao gồm trong bảng nội dung. Mức độ của tiêu đề sẽ xác định mức phân cấp tương ứng của mục nhập trong TOC. Chẳng hạn, một đoạn văn có kiểu tiêu đề 1 sẽ được coi là cấp độ đầu tiên trong TOC trong khi một đoạn với tiêu đề 2 sẽ được coi là cấp độ tiếp theo trong hệ thống phân cấp, v.v.

Mức phác thảo [\ u switch] & nbsp;
[\U switch] 

Mỗi đoạn có thể xác định một mức phác thảo trong các tùy chọn đoạn văn.

Cài đặt này chỉ ra mức nào đoạn này nên được xử lý theo phân cấp tài liệu. Điều này thường được sử dụng thực tế được sử dụng để dễ dàng cấu trúc bố cục của một tài liệu. Hệ thống phân cấp này có thể được xem bằng cách thay đổi để phác thảo chế độ xem trong Microsoft Word. Tương tự như các kiểu tiêu đề, có thể có 1 - 9 mức phác thảo ngoài mức độ văn bản cơ thể trên mạng. Phác thảo cấp 1 - 9 sẽ xuất hiện trong TOC ở cấp độ tương ứng của hệ thống phân cấp bất kỳ nội dung nào có mức phác thảo được đặt theo kiểu đoạn văn hoặc trực tiếp trên đoạn văn được bao gồm trong TOC. Trong Aspose.words, mức phác thảo được thể hiện bằng thuộc tính Paragraphformat.outlinelevel của nút đoạn văn. Mức phác thảo của một kiểu đoạn văn được thể hiện theo cùng một cách bởi thuộc tính style.paragraphformat.
Any content with an outline level either set in the paragraph style or directly on the paragraph itself is included in the TOC. In Aspose.Words the outline level is represented by the ParagraphFormat.OutlineLevel property of the Paragraph node. The outline level of a paragraph style is represented in the same way by the Style.ParagraphFormat property.

Kiểu tùy chỉnh [\ t Switch] & nbsp;
[\T switch] 

Công tắc này sẽ cho phép các kiểu tùy chỉnh được sử dụng khi thu thập các mục được sử dụng trong TOC. Điều này thường được sử dụng cùng với công tắc \ o để bao gồm các kiểu tùy chỉnh cùng với các kiểu tiêu đề tích hợp trong TOC. Các tham số của công tắc nên được đặt trong các dấu phát. Nhiều kiểu tùy chỉnh có thể được bao gồm, đối với mỗi kiểu, tên nên được chỉ định theo sau là dấu phẩy theo sau là mức độ mà kiểu nên xuất hiện trong TOC như. Phong cách hơn nữa cũng được phân tách bằng dấu phẩy là tốt. Ví dụ & nbsp;
The parameters of the switch should be enclosed within speech marks. Many custom styles can be included, for each style the name should be specified followed by a comma followed by the level that the style should appear in the TOC as. Further styles are also separated by a comma as well.
For instance 

{ TOC \o "1-3" \t "CustomHeading1, 1,   CustomHeading2, 2"}

sẽ sử dụng nội dung được tạo kiểu với nội dung CustomHeading1 dưới dạng cấp 1 trong TOC và CustomHeading2 là Cấp 2.

Sử dụng các trường TC [\ f và \ l chuyển đổi] & nbsp;
[\F and \L Switches] 

Trong các phiên bản cũ hơn của Microsoft Word, cách duy nhất để xây dựng TOC là việc sử dụng các trường TC. Các trường này được chèn ẩn ẩn vào tài liệu ngay cả khi mã trường được hiển thị. Chúng bao gồm các văn bản nên được hiển thị trong mục nhập và TOC được xây dựng từ chúng. Chức năng này hiện không được sử dụng rất thường xuyên nhưng vẫn có thể hữu ích trong một số trường hợp để bao gồm các mục trong TOC không có thể nhìn thấy trong tài liệu. Khi chèn các trường này xuất hiện ẩn ngay cả khi mã trường được hiển thị. Họ không thể được nhìn thấy mà không hiển thị nội dung ẩn. Để xem các trường này hiển thị định dạng đoạn văn phải được chọn.
When inserted these fields appear hidden even when field codes are displayed. They cannot be seen without showing hidden content. To see these fields Show paragraph formatting must be selected.

Các trường này có thể được chèn vào một tài liệu ở bất kỳ vị trí nào như bất kỳ trường nào khác và được đại diện bởi FieldType.FieldTocEntry liệt kê. & NBSP; Công tắc \ f trong TOC được sử dụng để chỉ định rằng các trường TC nên được sử dụng làm mục. Công tắc tự mình mà không có bất kỳ định danh bổ sung nào có nghĩa là bất kỳ trường TC nào trong tài liệu sẽ được đưa vào. Bất kỳ tham số bổ sung nào, thường là một chữ cái, sẽ chỉ định rằng chỉ các trường TC có công tắc \ f phù hợp sẽ được đưa vào TOC. Ví dụ *
The \F switch in a TOC is used to specify that TC fields should be used as entries. The switch on its own without any extra identifier means that any TC field in the document will be included. Any extra parameter, often a single letter, will designate that only TC fields which have a matching \f switch will be included in the TOC. For instance *

{ TOC \f t }

sẽ chỉ bao gồm các trường TC như & NBSP;

{   TC \f t }

Trường TOC cũng có một công tắc có liên quan, công tắc \ \ L, chỉ định rằng chỉ có trường TC có các cấp trong phạm vi được chỉ định được bao gồm. & NBSP;

Bản thân các trường TC cũng có thể có một số công tắc được đặt. Đó là:

- \ f - giải thích ở trên.

- \ l - Xác định mức nào trong trường TC TC này sẽ xuất hiện. Một TOC sử dụng công tắc tương tự này sẽ chỉ bao gồm trường TC này nếu nó trong phạm vi được chỉ định.

- _ \ N - Việc đánh số trang cho mục TOC này không được hiển thị. Mã mẫu về cách chèn các trường TC có thể được tìm thấy trong phần tiếp theo.

Công tắcSự mô tả
Bỏ qua số trang [\ n Switch] & nbsp;
[\N Switch] 

Công tắc này được sử dụng để ẩn số trang cho các cấp độ nhất định của TOC. Ví dụ: bạn có thể xác định & nbsp;

{TOC \o "1-4" \n "3-4" }

và các số trang trên các mục của Cấp độ 3 và bốn sẽ được ẩn cùng với các dấu chấm lãnh đạo [nếu có]. Để chỉ định chỉ nên sử dụng một cấp một phạm vi, ví dụ, chỉ cần loại trừ các số trang cho cấp độ đầu tiên. Không cung cấp phạm vi cấp độ sẽ bỏ qua số trang cho tất cả các cấp trong TOC. Điều này rất hữu ích để đặt khi xuất một tài liệu sang định dạng HTML hoặc định dạng tương tự. Điều này là do các định dạng dựa trên HTML don don có bất kỳ khái niệm trang nào và do đó don không cần bất kỳ đánh số trang nào.
Supplying no level range will omit page numbers for all levels in the TOC. This is useful to set when exporting a document to HTML or similar format. This is because HTML based formats don’t have any page concept and thus don’t need any page numbering.

Chèn dưới dạng siêu liên kết [\ H Switch] & nbsp;
[\H Switch] 

Công tắc này chỉ định rằng các mục TOC được chèn dưới dạng siêu liên kết. Khi xem tài liệu trong Microsoft Word, các mục này vẫn sẽ xuất hiện dưới dạng văn bản bình thường bên trong TOC nhưng được liên kết và do đó có thể được sử dụng để điều hướng đến vị trí của mục nhập gốc trong tài liệu bằng cách sử dụng ctrl + nhấp chuột trái trong Microsoft Word. Khi công tắc này được bao gồm thì các liên kết này cũng được bảo tồn ở các định dạng khác. Ví dụ, ở các định dạng dựa trên HTML bao gồm các định dạng EPUB và được hiển thị như PDF và XP này sẽ được xuất dưới dạng liên kết làm việc. Nếu không có công tắc này, hãy đặt TOC trong tất cả các đầu ra này sẽ được xuất dưới dạng văn bản đơn giản và sẽ không chứng minh hành vi này. & NBSP; Nếu một tài liệu được mở trong MS Word, văn bản của các mục nhập cũng sẽ không thể nhấp theo cách này nhưng số trang vẫn có thể được sử dụng để điều hướng đến mục gốc.
Without this switch set the TOC in all of these outputs will be exported as plain text and will not demonstrate this behavior.  If a document is opened in MS Word the text of the entries will also not be clickable in this way but the page numbers can still be used to navigate to the original entry.

Đặt ký tự phân tách [\ P Switch] & nbsp;
[\P Switch] 

Công tắc này cho phép nội dung phân tách tiêu đề của mục nhập và đánh số trang dễ dàng thay đổi trong TOC. Bộ phân cách để sử dụng nên được chỉ định sau khi chuyển đổi này và được đặt trong các dấu hiệu. Trái với những gì được ghi lại trong tài liệu văn phòng, chỉ có thể sử dụng một nhân vật thay vì tối đa năm. Điều này áp dụng cho cả MS Word và Aspose.words. Sử dụng công tắc này không được khuyến nghị vì nó không cho phép kiểm soát nhiều về những gì nó được sử dụng để phân tách các mục và số trang trong TOC. Thay vào đó, bạn nên chỉnh sửa kiểu TOC thích hợp như styleidentifier.toc1 và từ đó chỉnh sửa phong cách lãnh đạo với quyền truy cập vào các thành viên phông chữ cụ thể, vv Thông tin chi tiết về cách thực hiện điều này có thể được tìm thấy sau trong bài viết.
Contrary to what is documented in Office documentation, only one character can be used instead of up to five. This applies to both MS Word and Aspose.Words.
Using this switch is not recommended as it does not allow much control over what it used to separate entries and page numbers in the TOC. Instead it is recommended to edit the appropriate TOC style such as StyleIdentifier.TOC1 and from there edit the leader style with access to specific font members etc. Further details of how to do this can be found later in the article.

Bảo tồn các mục nhập tab [\ W Switch] & nbsp;
[\W Switch] 

Sử dụng công tắc này sẽ chỉ định rằng bất kỳ mục nào có ký tự tab, ví dụ như một tiêu đề có một tab ở cuối dòng, sẽ được giữ lại dưới dạng ký tự tab thích hợp khi điền TOC. Điều này có nghĩa là chức năng của ký tự tab sẽ có mặt trong TOC và có thể được sử dụng để định dạng mục nhập. Ví dụ, một số mục nhất định có thể sử dụng các điểm dừng tab và các ký tự tab để không gian đều không gian văn bản. Miễn là mức TOC tương ứng xác định tab tương đương dừng thì các mục TOC được tạo sẽ xuất hiện với khoảng cách tương tự.

Trong cùng một tình huống nếu công tắc này không được xác định thì các ký tự tab sẽ được chuyển đổi thành không gian trắng tương đương như các tab không hoạt động. Đầu ra sau đó sẽ không xuất hiện như mong đợi.

Bảo tồn các mục nhập dòng mới [\ x Switch] & nbsp;
[\X Switch] 

Tương tự như công tắc ở trên, công tắc này chỉ định rằng các tiêu đề trải dài trên nhiều dòng [sử dụng các ký tự dòng mới không riêng biệt đoạn văn] sẽ được bảo tồn khi chúng nằm trong TOC được tạo. Ví dụ: một tiêu đề là trải rộng trên nhiều dòng có thể sử dụng ký tự dòng mới [Ctrl + enter hoặc controlchar.linebreak] để phân tách nội dung trên các dòng khác nhau. Với công tắc này được chỉ định, mục nhập trong TOC sẽ bảo tồn các ký tự dòng mới này như được hiển thị bên dưới.

Trong tình huống này nếu công tắc không được xác định thì các ký tự dòng mới được chuyển đổi thành một không gian trắng duy nhất.

Chèn các trường TC

Bạn có thể chèn một trường TC mới ở vị trí hiện tại của tài liệu trình tạo tài liệu bằng cách gọi phương thức documentBuilder.Insert_field và chỉ định tên trường là TC TC cùng với bất kỳ công tắc nào cần thiết. & NBSP; Tài liệu sử dụng DocumentBuilder.

Sửa đổi một bảng nội dung

Định dạng của các mục trong TOC không sử dụng các kiểu ban đầu của các mục được đánh dấu, thay vào đó mỗi cấp được định dạng bằng cách sử dụng kiểu TOC tương đương. Ví dụ, cấp độ đầu tiên trong TOC được định dạng với kiểu TOC1, cấp độ thứ hai được định dạng với kiểu TOC2, v.v. Điều này có nghĩa là để thay đổi diện mạo của TOC, các phong cách này phải được sửa đổi. Trong aspose.words, các phong cách này được thể hiện bởi styledentifier độc lập của Locale.toc1 thông qua styleidentifier.toc9 và có thể được lấy từ bộ sưu tập tài liệu.TOC1 style, the second level formatted with the TOC2 style and so on. This means that to change the look of the TOC these styles must be modified. In Aspose.Words these styles are represented by the locale independent StyleIdentifier.TOC1 through to StyleIdentifier.TOC9 and can be retrieved from the Document.styles collection using these identifiers.

Khi phong cách thích hợp của tài liệu đã được truy xuất, việc định dạng cho kiểu này có thể được sửa đổi. Bất kỳ thay đổi nào đối với các kiểu này sẽ được tự động phản ánh trên TOC trong tài liệu. Dưới đây ví dụ thay đổi một thuộc tính định dạng được sử dụng trong kiểu TOC cấp đầu tiên.

Cũng rất hữu ích khi lưu ý rằng bất kỳ định dạng trực tiếp nào của đoạn văn [được định nghĩa trên chính đoạn và không theo kiểu] được đánh dấu để được bao gồm TOC sẽ được sao chép trong mục nhập trong TOC. Ví dụ: nếu kiểu tiêu đề 1 được sử dụng để đánh dấu nội dung cho TOC và phong cách này có định dạng in đậm trong khi đoạn văn cũng có định dạng in nghiêng trực tiếp cho nó. Mục nhập kết quả TOC sẽ không được in đậm vì đó là một phần của định dạng kiểu tuy nhiên nó sẽ được in nghiêng vì điều này được định dạng trực tiếp trên đoạn văn.

Bạn cũng có thể kiểm soát định dạng của các dấu phân cách được sử dụng giữa mỗi mục nhập và số trang. Theo mặc định, đây là một đường chấm chấm được trải đều đến việc đánh số trang bằng cách sử dụng ký tự tab và dừng tab bên phải xếp hàng gần với lề phải.

Sử dụng lớp Kiểu được truy xuất cho cấp độ TOC cụ thể mà bạn muốn sửa đổi, bạn cũng có thể sửa đổi cách chúng xuất hiện trong tài liệu. & NBSP; Để thay đổi cách thức xuất hiện trước đó. Từ đó, tab dừng có thể được truy xuất bằng cách gọi paragraphformat.TAB_STOPS và Tab Stop được sửa đổi. Sử dụng cùng một kỹ thuật này, tab có thể được di chuyển hoặc loại bỏ tất cả lại với nhau. Ví dụ dưới đây cho thấy cách sửa đổi vị trí của tab bên phải dừng trong các đoạn liên quan đến TOC.

Xóa một bảng nội dung khỏi tài liệu

Một bảng nội dung có thể được xóa khỏi tài liệu bằng cách xóa tất cả các nút được tìm thấy giữa nút FieldStart và Fieldend của trường TOC. & NBSP; Mã bên dưới thể hiện điều này. Việc loại bỏ trường TOC đơn giản hơn một trường bình thường vì chúng tôi không theo dõi các trường lồng nhau. Thay vào đó, chúng tôi kiểm tra nút FieldEnd thuộc loại fieldtype.field_toc, có nghĩa là chúng tôi đã gặp phải kết thúc của TOC hiện tại. Kỹ thuật này có thể được sử dụng trong trường hợp này mà không phải lo lắng về bất kỳ trường lồng nhau nào vì chúng tôi có thể cho rằng bất kỳ tài liệu được hình thành đúng nào sẽ không có trường TOC được lồng hoàn toàn trong trường TOC khác.

Đầu tiên các nút FieldStart của mỗi TOC được thu thập và lưu trữ. TOC được chỉ định sau đó được liệt kê để tất cả các nút trong trường được truy cập và lưu trữ. Các nút sau đó được xóa khỏi tài liệu. Mẫu mã dưới đây trình bày cách xóa TOC được chỉ định khỏi tài liệu.

Trích xuất bảng nội dung

Nếu bạn muốn trích xuất một bảng nội dung từ bất kỳ tài liệu Word nào, có thể sử dụng mẫu mã sau.

doc = aw.Document[docs_base.my_dir + "Table of contents.docx"]

for field in doc.range.fields :
            
    if [field.type == aw.fields.FieldType.FIELD_HYPERLINK] :
                
        hyperlink = field.as_field_hyperlink[]
        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["------------------"]
    
            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]]

Làm thế nào để tôi có được bảng nội dung để tự động cập nhật trong Word?

Nhấp vào TÀI LIỆU THAM KHẢO> Mục lục và sau đó chọn một bảng tự động của kiểu nội dung từ danh sách.LƯU Ý: Nếu bạn sử dụng một bảng thủ công theo kiểu nội dung, Word sẽ không sử dụng các tiêu đề của bạn để tạo bảng nội dung và sẽ không thể cập nhật nó một cách tự động.. Note: If you use a Manual Table of Contents style, Word won't use your headings to create a table of contents and won't be able to update it automatically.

Bảng Cập nhật F9 có trong Word không?

Nhấn Ctrl+A để chọn toàn bộ tài liệu và sau đó nhấn F9.Nhấn khóa này cập nhật tất cả các bảng nội dung trong tài liệu, trong trường hợp bạn có nhiều hơn một.Pressing this key updates all tables of contents in the document, in case you have more than one.

Làm thế nào để bạn tạo một bảng nội dung trong Python?

Cách dễ nhất để tạo các bảng trong Python là sử dụng hàm Table [] từ thư viện bảng ...
Để sử dụng chức năng này, trước tiên chúng ta phải cài đặt thư viện bằng PIP: PIP Cài đặt Tabulation ..
Sau đó, chúng ta có thể tải thư viện: từ bảng nhập bảng lập bảng ..

Làm thế nào để bạn cập nhật một bảng nghiên cứu nội dung?

Chỉ cần nhấp chuột phải vào bảng nội dung và chọn trường Cập nhật.Bạn có thể chọn chỉ để cập nhật số trang hoặc cập nhật tất cả thông tin trong bảng nội dung của bạn.right-click the table of contents and select “Update Field.” You can choose either to update page numbers only or to update all information in your table of contents.

Bài Viết Liên Quan

Chủ Đề