Διαλογισμός πίνακα Aspose.Note FOSS για Python
Οι πίνακες στα έγγραφα του OneNote εκθέτονται ως ιεραρχία τριών επιπέδων: Table → TableRow → TableCell.Κάθε κύτταρο μπορεί να περιέχει RichText, Image, και άλλα κόμβα περιεχομένου. Αυτή η σελίδα καλύπτει κάθε πρότυπο παρτίνωσης του πίνακα που υποστηρίζεται από Aspose.Note FOSS για Python.
Βασική πίνακα ιθερίτιδα
Επαναλάβετε όλες τις πίνακες στο έγγραφο και διαβάστε το κείμενο των κυττάρων τους:
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for table_num, table in enumerate(doc.GetChildNodes(Table), start=1):
print(f"\nTable {table_num}: {len(table.Columns)} column(s)")
for r, row in enumerate(table.GetChildNodes(TableRow), start=1):
cells = row.GetChildNodes(TableCell)
values = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in cells
]
print(f" Row {r}: {values}")Ιδιότητες Τάπουλ
| Ιδιοκτησία | Τύπος | Περιγραφή |
|---|---|---|
Columns | list[TableColumn] | Ορισμός στήλης: κάθε TableColumn Έχει .Width (από την πλοία) και .LockedWidth ( Το Μπόλ) |
IsBordersVisible | bool | Εάν εμφανίζονται τα όρια του τραπέζου |
Tags | list[NoteTag] | OneNote tags προστίθενται στο τραπέζι |
from aspose.note import Document, Table
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
print(f"Columns: {len(table.Columns)}")
print(f"Widths (pts): {[col.Width for col in table.Columns]}")
print(f"Borders visible: {table.IsBordersVisible}")Εξαγωγικό πίνακα σε CSV
Μετατρέψτε ένα πίνακα σε μορφή CSV:
import csv
import io
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
output = io.StringIO()
writer = csv.writer(output)
for table in doc.GetChildNodes(Table):
for row in table.GetChildNodes(TableRow):
values = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in row.GetChildNodes(TableCell)
]
writer.writerow(values)
writer.writerow([]) # blank line between tables
print(output.getvalue())Εξαγωγή πίνακων ανά σελίδα
Εξέταση πίνακα κλίμακας σε μεμονωμένες σελίδες:
from aspose.note import Document, Page, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for page_num, page in enumerate(doc.GetChildNodes(Page), start=1):
tables = page.GetChildNodes(Table)
if not tables:
continue
title = (
page.Title.TitleText.Text
if page.Title and page.Title.TitleText
else f"Page {page_num}"
)
print(f"\n=== {title} ({len(tables)} table(s)) ===")
for t, table in enumerate(tables, start=1):
print(f" Table {t}:")
for row in table.GetChildNodes(TableRow):
cells = row.GetChildNodes(TableCell)
row_text = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in cells
]
print(f" {row_text}")Πληροφορίες για το περιεχόμενο πέρα από το κείμενο
Τα κελιά του τραπέζου μπορούν να περιέχουν Image και άλλοι CompositeNode Συμπεριφορά δίπλα RichText:
from aspose.note import Document, Table, TableRow, TableCell, RichText, Image
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
for row in table.GetChildNodes(TableRow):
for cell in row.GetChildNodes(TableCell):
texts = [rt.Text for rt in cell.GetChildNodes(RichText) if rt.Text]
images = cell.GetChildNodes(Image)
print(f" Cell texts: {texts} images: {len(images)}")Συνοψίστε και συλλέξτε τα τραπέζια
Συλλέξτε στατιστικά στοιχεία για όλα τα τραπέζια σε ένα έγγραφο:
from aspose.note import Document, Table, TableRow, TableCell
doc = Document("MyNotes.one")
tables = doc.GetChildNodes(Table)
print(f"Total tables: {len(tables)}")
for i, table in enumerate(tables, start=1):
rows = table.GetChildNodes(TableRow)
if rows:
cols = len(rows[0].GetChildNodes(TableCell))
else:
cols = 0
print(f" Table {i}: {len(rows)} row(s) x {cols} column(s) widths={[col.Width for col in table.Columns]}")Ελέγξτε τα ετικέτα σε πίνακες
Στήριξη Τάβουλας NoteTag Τα στοιχεία απευθείας:
from aspose.note import Document, Table, TagStatus
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
for tag in table.Tags:
is_completed = tag.Status == TagStatus.Completed
print(f"Table tag: {tag.Label} icon={tag.Icon} completed={is_completed}")Ο χώρος των τραπεζών
Τα παιδιά εμφανίζονται σαν τα παιδιά των OutlineElement Κόντρα μέσα Outline Κάθε δοχείο σε κάθε Page.Η ιεραρχία είναι:
Page
└── Outline
└── OutlineElement
└── Table
└── TableRow
└── TableCell
└── RichText / ImageΜπορείτε επίσης να φτάσετε σε πίνακες μέσω GetChildNodes(Table) σε οποιοδήποτε επίπεδο νύχτας των προγόνων, και αναζητά το πλήρες υποδέντρο.
Tips
table.ColumnsΕίναι μια λίστα μεTableColumnαντικείμενα · χρήση[col.Width for col in table.Columns]Για να πάρει πλάτους στήλης σε σημεία. το μήκος ισούται με τον αριθμό των στίχων.- Το περιεχόμενο των κυττάρων δεν είναι πάντα καθαρό
RichText;Πάντα να ελέγχετε γιαImageΑκόμα και αν έχει σημασία η πλήρης πίστη. - Χρησιμοποιήστε
table.GetChildNodes(TableRow)Αντί να ιταρίσειfor row in tableΑν χρειάζεστε μια τυποποιημένη λίστα αντί για έναν γενικό ιθερατή. IsBordersVisibleαντικατοπτρίζει την προτίμηση προβολής του χρήστη στο OneNote για να εξοικονομήσει χρόνο· δεν επηρεάζει την εκχύλιση περιεχομένου.