כיצד לשמור גיליונות אלקטרוניים כ‑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 מייצא את כל הטווח המשמש של הגיליון הפעיל. כדי להגביל את הפלט לטווח ספציפי, העתק את התאים הרצויים למחברת זמנית וייצא את המחברת הזו.
ראה גם
- How to Save Files with Aspose.Cells FOSS — סקירה כללית של שמירה הכוללת XLSX ו‑Markdown
- How to Convert CSV to JSON in Python — טעינת CSV וייצוא לפורמט JSON
- How to Export Excel to Markdown in Python — ייצוא טבלת Markdown באמצעות
save_as_markdown() - Aspose.Cells FOSS for Python: Developer Guide — תיעוד תכונות מקיף
- API Reference —
Workbook,CSVHandler,CSVSaveOptions