تحميل لعبة 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لا

الخطوات التالية