Hogyan mentsük a táblázatokat CSV formátumban Pythonban

Hogyan mentsük a táblázatokat CSV formátumban Pythonban

Probléma

Mentse az Excel-munkafüzetet (.xlsx) CSV-fájlként az Aspose.Cells FOSS segítségével Pythonban. Töltse be a munkafüzetet a Workbook() segítségével, majd hívja meg a save_as_csv() metódust az aktív munkalap vesszővel elválasztott értékfájlba írásához. Opcionálisan adjon át egy CSVSaveOptions objektumot az elválasztó, a kódolás és az idézőjeles viselkedés vezérléséhez.

Előfeltételek

A táblázatok CSV-ként való mentéséhez az Aspose.Cells FOSS segítségével Pythonban győződjön meg arról, hogy a környezete megfelel az alábbi követelményeknek.

  • Python 3.7 vagy újabb telepítve
  • Telepítse az Aspose.Cells FOSS-t a pip install aspose-cells-foss>=26.3.1 segítségével
  • Importálja a könyvtárat a from aspose.cells_foss import Workbook paranccsal
  • Alapvető Python fájlkezelési ismeretek

Mentési lépések

1. lépés: A könyvtár telepítése

Telepítse az Aspose.Cells FOSS-t a PyPI-ről. FOSS használathoz nincs szükség licencfájlra.

pip install aspose-cells-foss

2. lépés: A munkafüzet betöltése

Hozzon létre Workbook példányt egy meglévő .xlsx fájl elérési útjával. A konstruktor opcionális password paramétert fogad el a védett munkafüzetekhez.

from aspose.cells_foss import Workbook

workbook = Workbook("input.xlsx")

Teljesen új munkafüzettel való munkához hagyja el a fájl elérési útját:

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. lépés: Az aktív lap mentése CSV-ként

Hívja meg a Workbook.save_as_csv() metódust a kívánt kimeneti elérési úttal. A metódus alapértelmezés szerint az első (aktív) munkalapot írja.

workbook.save_as_csv("output.csv")

Alternatívaként használja az általános Workbook.save() metódust — az Aspose.Cells FOSS a .csv kiterjesztésből következtet a CSV formátumra:

workbook.save("output.csv")

Mindkét hívás azonos kimenetet produkál, ha nincs szükség egyéni beállításokra.

4. lépés: Mentés CSV beállításokkal

A Workbook.save_as_csv() opcionális CSVSaveOptions példányt fogad el második argumentumként. Hozzon létre CSVSaveOptions példányt az aspose.cells_foss.csv_handler modulból, és adja át közvetlenül az exportálási viselkedés vezérléséhez, például nem alapértelmezett elválasztó vagy kódolás kiválasztásához.

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)

Ha nem adunk át CSVSaveOptions objektumot, a save_as_csv() a könyvtár beépített alapértelmezéseit használja (vesszős elválasztó, UTF-8 kódolás). Adja át a beállítások objektumot, amikor programozottan felül kell írni ezeket az alapértelmezéseket.

5. lépés: Egy adott munkalap exportálása

Ha a munkafüzet több lapot tartalmaz, az aktív lap kerül exportálásra. Használja a Workbook.set_active_worksheet() metódust az exportálandó lap kiválasztásához mentés előtt.

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")

Minden lap saját CSV-fájlba való exportálásához iteráljon a workbook.worksheets gyűjteményen:

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")

Teljes példa

A következő önálló példa létrehoz egy munkafüzetet, feltölti mintaadatokkal, és elmenti mind szabványos CSV-ként, mind pontosvesszővel elválasztott CSV-ként.

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.")

Gyakori problémák

Üres kimeneti fájl

Ha a kimeneti CSV üres vagy csak üres sorokat tartalmaz, ellenőrizze, hogy a cellaértékek a save_as_csv() hívása előtt lettek-e hozzárendelve. A metódus az aktív munkalapot exportálja — ellenőrizze, hogy a megfelelő lap aktív-e a workbook.get_active_worksheet() segítségével.

Kódolási problémák (olvashatatlan karakterek)

Ha Excelben megnyitott CSV-ben sérült karaktereket lát, ellenőrizze az exportáláskor használt kódolást. Az Aspose.Cells FOSS alapértelmezés szerint UTF-8-at használ; az Excel Windows rendszeren bájtsorrendjelet (BOM) várhat a kódolás helyes felismeréséhez. Konfigurálja a kódolást a CSVSaveOptions segítségével, és adja át a save_as_csv() metódusnak.

A több lapból álló munkafüzetek csak egy lapot exportálnak

A CSV egytáblás formátum; fájlonként csak egy munkalap menthető. Exportálja az egyes lapokat egyenként a set_active_worksheet(index) segítségével, ahogy az 5. lépésben látható.

Az elválasztót tartalmazó cellák

Ha egy cellaérték tartalmazza az elválasztó karaktert (pl. vesszőt vesszővel elválasztott kimenetben), az Aspose.Cells FOSS automatikusan idézőjelbe teszi az értéket exportáláskor. Használja a CSVSaveOptions objektumot az idézőjeles viselkedés testreszabásához, ha szükséges.

Gyakran ismételt kérdések

K: A workbook.save("output.csv") ugyanolyan eredményt produkál-e, mint a save_as_csv()?

Igen. A Workbook.save() megvizsgálja a fájlkiterjesztést, és a save_as_csv() metódusra delegál, ha a kiterjesztés .csv. Hívja meg közvetlenül a save_as_csv() metódust, és adjon át CSVSaveOptions példányt, ha az exportálást a beépített alapértelmezéseken túl is testreszabja.

K: Exportálhatok CSV-karakterláncba fájl helyett?

Igen. Használja a CSVHandler.save_csv_to_string(workbook, options) metódust az aspose.cells_foss.csv_handler modulból. Ez Python-karakterláncként adja vissza a CSV-tartalmat, amelyet streambe írhat, feltölthet vagy tovább feldolgozhat a fájlrendszer érintése nélkül.

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)

K: Hogyan tölthetek vissza egy CSV-t a munkafüzetbe mentés után?

Használja a Workbook.load_csv("file.csv") metódust egy meglévő Workbook példányon, vagy hívja meg a load_csv_workbook("file.csv") kényelmi függvényt az aspose.cells_foss.csv_handler modulból, hogy egy lépésben kapjon egy használatra kész munkafüzetet.

K: Mely Python verziók támogatottak?

Az Aspose.Cells FOSS Python 3.7 vagy újabb verziót igényel. A CSV-exportáláshoz nincs szükség további natív kiterjesztésekre; a könyvtár tiszta Python.

K: Menthetem-e csak egy munkalap egy részét (cellatartomány) CSV-ként?

Az Aspose.Cells FOSS az aktív munkalap teljes használt tartományát exportálja. A kimenet egy adott tartományra való korlátozásához másolja a kívánt cellákat egy ideiglenes munkafüzetbe, és exportálja azt a munkafüzetet.

Lásd még

 Magyar