כיצד לשמור גיליונות אלקטרוניים כ‑CSV בפייתון

כיצד לשמור גיליונות אלקטרוניים כ‑CSV בפייתון

בעיה

שמור חוברת Excel (.xlsx) כקובץ CSV באמצעות Aspose.Cells FOSS בפייתון. טען את חוברת העבודה עם Workbook(), ואז קרא ל-save_as_csv() כדי לכתוב את הגיליון הפעיל לקובץ ערכי מופרדים בפסיקים. באופן אופציונלי, העבר אובייקט CSVSaveOptions כדי לשלוט במפריד, בקידוד ובתנהגות הציטוט.

דרישות מקדימות

כדי לשמור גיליונות אלקטרוניים כ‑CSV באמצעות Aspose.Cells FOSS בפייתון, ודא שהסביבה שלך עומדת בדרישות הבאות.

  • מותקן Python 3.7 או גרסה מאוחרת יותר
  • התקן Aspose.Cells FOSS דרך pip install aspose-cells-foss>=26.3.1
  • ייבא את הספרייה באמצעות from aspose.cells_foss import Workbook
  • היכרות בסיסית עם טיפול בקבצים ב-Python

שלבי שמירה

שלב 1: התקנת הספרייה

התקן את Aspose.Cells FOSS מ‑PyPI. אין צורך בקובץ רישיון לשימוש ב‑FOSS.

pip install aspose-cells-foss

שלב 2: טען את חוברת העבודה

צור מופע של Workbook עם הנתיב לקובץ .xlsx קיים. הקונסטרקטור מקבל פרמטר password אופציונלי עבור חוברות עבודה מוגנות.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

כדי לעבוד עם חוברת עבודה חדשה במקום זאת, השמט את נתיב הקובץ:

from aspose.cells_foss import Workbook

workbook = Workbook()
worksheet = workbook.worksheets[0]

# Populate some cells
worksheet.cells["A1"].value = "Product"
worksheet.cells["B1"].value = "Price"
worksheet.cells["A2"].value = "Widget"
worksheet.cells["B2"].value = 9.99
worksheet.cells["A3"].value = "Gadget"
worksheet.cells["B3"].value = 24.95

שלב 3: שמור את הגיליון הפעיל כ‑CSV

הפעל את Workbook.save_as_csv() עם נתיב הפלט הרצוי. השיטה כותבת את הגיליון הראשון (הפעיל) כברירת מחדל.

workbook.save_as_csv("output.csv")

לחלופין, השתמשו בשיטה הכללית Workbook.save() — Aspose.Cells FOSS מזהה את פורמט ה‑CSV מההרחבה .csv:

workbook.save("output.csv")

שתי הקריאות מייצרות פלט זהה כאשר אין צורך באפשרויות מותאמות.

שלב 4: שמירה עם אפשרויות CSV

Workbook.save_as_csv() מקבל מופע אופציונלי של CSVSaveOptions כארגומנט השני שלו. צור מופע של CSVSaveOptions מaspose.cells_foss.csv_handler והעבר אותו ישירות כדי לשלוט בהתנהגות הייצוא, כגון בחירת מפריד שאינו ברירת מחדל או קידוד.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

workbook = Workbook("input.xlsx")

# Create options instance — configure attributes per your environment's needs
options = CSVSaveOptions()

workbook.save_as_csv("output_custom.csv", options)

כאשר לא מועבר CSVSaveOptions, save_as_csv() משתמש בברירות המחדל המובנות של הספרייה (מפריד פסיק, קידוד UTF-8). העבר את אובייקט האפשרויות בכל פעם שאתה צריך לעקוף את ברירות המחדל האלה באופן תכנותי.

שלב 5: ייצוא גיליון ספציפי

כאשר חוברת עבודה מכילה מספר גיליונות, הגיליון הפעיל מיוצא. השתמש בWorkbook.set_active_worksheet() כדי לבחור איזה גיליון לייצא לפני השמירה.

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

# Export the second worksheet (index 1)
workbook.set_active_worksheet(1)
workbook.save_as_csv("sheet2_output.csv")

כדי לייצא כל גיליון לקובץ CSV משלו, חזור על workbook.worksheets:

from aspose.cells_foss import Workbook

workbook = Workbook("multi_sheet.xlsx")

for index in range(len(workbook.worksheets)):
    ws = workbook.get_worksheet_by_index(index)
    workbook.set_active_worksheet(index)
    workbook.save_as_csv(f"sheet_{ws.name}.csv")

דוגמה מלאה

הדוגמה העצמאית הבאה יוצרת חוברת עבודה, ממלאת אותה בנתוני דוגמה, ושומרת אותה הן כקובץ CSV רגיל והן כקובץ CSV המופרד בנקודה‑פסיק.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVSaveOptions

# Create workbook and populate data
workbook = Workbook()
worksheet = workbook.worksheets[0]

headers = ["Name", "Department", "Salary"]
rows = [
    ["Alice", "Engineering", 95000],
    ["Bob",   "Marketing",   72000],
    ["Carol", "Finance",     81000],
]

for col, header in enumerate(headers):
    col_letter = chr(ord("A") + col)
    worksheet.cells[f"{col_letter}1"].value = header

for row_idx, row in enumerate(rows, start=2):
    for col_idx, val in enumerate(row):
        col_letter = chr(ord("A") + col_idx)
        worksheet.cells[f"{col_letter}{row_idx}"].value = val

# Save as standard CSV (default options)
workbook.save_as_csv("employees.csv")

# Save with explicit CSVSaveOptions instance
options = CSVSaveOptions()
workbook.save_as_csv("employees_custom.csv", options)

print("CSV files written successfully.")

בעיות נפוצות

קובץ פלט ריק

אם קובץ CSV הפלט ריק או מכיל רק שורות ריקות, ודא שערכי התא הוקצו לפני קריאה לsave_as_csv(). השיטה מייצאת את הגיליון הפעיל — אשר שהגיליון הנכון פעיל באמצעות workbook.get_active_worksheet().

בעיות קידוד (תווים מעוותים)

כאשר פותחים קובץ CSV באקסל ורואים תווים פגומים, יש לבדוק את הקידוד שבו השתמשו ביצוא. Aspose.Cells FOSS משתמש ב‑UTF-8 כברירת מחדל; אקסל ב‑Windows עשוי לצפות לסימן סדר בתים (BOM) כדי לזהות את הקידוד כראוי. הגדר קידוד דרך CSVSaveOptions והעבר אותו לsave_as_csv().

חוברות עבודה מרובות גיליונות מייצאות רק גיליון אחד

CSV הוא פורמט של טבלה יחידה; רק גיליון אחד יכול להישמר לכל קובץ. ייצא כל גיליון בנפרד באמצעות set_active_worksheet(index) כפי שמוצג בצעד 5.

תאים המכילים את המפריד

אם ערך תא מכיל את תו המפריד (למשל, פסיק בפלט מופרד בפסיקים), Aspose.Cells FOSS מוסיף מרכאות לערך באופן אוטומטי במהלך הייצוא. השתמש בCSVSaveOptions כדי להתאים את התנהגות הציטוט במידת הצורך.

FAQ

ש: האם workbook.save("output.csv") מייצר את אותה תוצאה כמו save_as_csv()?

כן. Workbook.save() בודק את סיומת הקובץ ומפנה ל-save_as_csv() כאשר הסיומת היא .csv. קרא ל-save_as_csv() ישירות והעבר מופע של CSVSaveOptions כאשר אתה צריך להתאים את הייצוא מעבר לברירות המחדל המובנות.

ש: האם ניתן לייצא למחרוזת CSV במקום קובץ?

כן. השתמש בCSVHandler.save_csv_to_string(workbook, options) מaspose.cells_foss.csv_handler. פעולה זו מחזירה את תוכן ה‑CSV כמחרוזת פייתון, שניתן לכתוב אותה לזרם, להעלות או לעבד הלאה מבלי לגעת במערכת הקבצים.

from aspose.cells_foss import Workbook
from aspose.cells_foss.csv_handler import CSVHandler, CSVSaveOptions

workbook = Workbook("input.xlsx")
csv_string = CSVHandler().save_csv_to_string(workbook, CSVSaveOptions())
print(csv_string)

ש: איך אני טוען קובץ CSV חזרה למחברת אחרי השמירה?

השתמש בWorkbook.load_csv("file.csv") על מופע Workbook קיים, או קרא לפונקציית הנוחות load_csv_workbook("file.csv") מaspose.cells_foss.csv_handler כדי לקבל חוברת עבודה מוכנה לשימוש בצעד אחד.

ש: אילו גרסאות של Python נתמכות?

Aspose.Cells FOSS דורש Python 3.7 או גרסה מאוחרת יותר. אין צורך בהרחבות מקומיות נוספות לייצוא CSV; הספרייה היא Python טהור.

ש: האם ניתן לשמור רק חלק מגיליון עבודה (טווח תאים) כ‑CSV?

Aspose.Cells FOSS מייצא את כל הטווח המשמש של הגיליון הפעיל. כדי להגביל את הפלט לטווח ספציפי, העתק את התאים הרצויים למחברת זמנית וייצא את המחברת הזו.

ראה גם

 עברית