تحميل لعبة OneNote Tabs in Python
يتيح Microsoft OneNote للمستخدمين إدراج اللوحات المنظمة مباشرة في الصفحات، مثالية لقوائم المهام والجدول الزمني ومقارنة المصفوفات ونماذج جمع البيانات. Aspose.ملاحظة FOSS لـ Python يسمح باستخراج جميع هذه البيئات الجدولية ببرنامج، دون أن يتطلب تثبيت Microsoft Office.
تثبيت
pip install aspose-noteتحميل الوثيقة والعثور على الجدول
GetChildNodes(Table) يقدم البحث التكراري في جميع أنحاء المستند ويعيد كل جدول كأحد Table الموضوع :
from aspose.note import Document, Table
doc = Document("MyNotes.one")
tables = doc.GetChildNodes(Table)
print(f"Found {len(tables)} table(s)")
قراءة القيم الخلوية
وتتبع اللوحات هيراقة ثلاثية المستويات: Table → TableRow → TableCell.كل خلية تحتوي على RichText النواة التي .Text يقدم محتوى النص المباشر:
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for t_num, table in enumerate(doc.GetChildNodes(Table), start=1):
print(f"\nTable {t_num}:")
for r_num, row in enumerate(table.GetChildNodes(TableRow), start=1):
cells = row.GetChildNodes(TableCell)
row_values = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in cells
]
print(f" Row {r_num}: {row_values}")
فحص عمود العرض
Table.Columns وهو قائمة من TableColumn الكائنات؛ كل TableColumn لديه أ .Width الممتلكات التي تعطي عرض الأعمدة في النقاط:
from aspose.note import Document, Table
doc = Document("MyNotes.one")
for i, table in enumerate(doc.GetChildNodes(Table), start=1):
widths = [col.Width for col in table.Columns]
print(f"Table {i}: {len(widths)} column(s)")
print(f" Widths (pts): {widths}")
print(f" Borders visible: {table.IsBordersVisible}")
تصدير جميع اللوحات إلى CSV
تحويل كل جدول في المستند إلى تنسيق CSV:
import csv, 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 row between tables
with open("tables.csv", "w", encoding="utf-8", newline="") as f:
f.write(output.getvalue())
print("Saved tables.csv")
تصدير اللوحات إلى Python Dict / JSON
import json
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
result = []
for table in doc.GetChildNodes(Table):
rows = []
for row in table.GetChildNodes(TableRow):
cells = [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in row.GetChildNodes(TableCell)
]
rows.append(cells)
result.append({"rows": rows, "column_widths": [col.Width for col in table.Columns]})
print(json.dumps(result, indent=2))
استخدم الخط الأول كرؤوس
from aspose.note import Document, Table, TableRow, TableCell, RichText
doc = Document("MyNotes.one")
for table in doc.GetChildNodes(Table):
rows = table.GetChildNodes(TableRow)
if not rows:
continue
def row_text(row):
return [
" ".join(rt.Text for rt in cell.GetChildNodes(RichText)).strip()
for cell in row.GetChildNodes(TableCell)
]
headers = row_text(rows[0])
print("Headers:", headers)
for row in rows[1:]:
record = dict(zip(headers, row_text(row)))
print(" Record:", record)
ما يدعم المكتبة للجدول
| الميزات | دعم |
|---|---|
Table.Columns (أيها الإخوة) TableColumn.Width) | نعم: عرض الأعمدة في النقاط |
Table.IsBordersVisible | نعم |
Table.Tags | نعم: OneNote علامات على اللوحات |
النص عبر الخلية RichText | نعم |
صور الخلايا عبر Image | نعم |
| الخلايا المختلطة (rowspan / colspan metadata) | لا يتم عرضها في API العامة |
اكتب/تحرير اللوحات و حفظ على .one | لا |