Як зберегти електронні таблиці у формат CSV за допомогою Python
Проблема
Збережіть книгу Excel (.xlsx) у файл CSV за допомогою Aspose.Cells FOSS у Python. Завантажте книгу за допомогою Workbook(), потім викличте save_as_csv(), щоб записати активний аркуш у файл зі значеннями, розділеними комами. За потреби передайте об’єкт CSVSaveOptions для керування роздільником, кодуванням та поведінкою лапок.
Вимоги
Щоб зберегти електронні таблиці у форматі CSV за допомогою Aspose.Cells FOSS у Python, переконайтеся, що ваше середовище відповідає наступним вимогам.
- 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). Передайте об’єкт options, коли потрібно програмно перевизначити ці значення за замовчуванням.
Крок 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 у Excel і спостереженні пошкоджених символів перевірте кодування, використане під час експорту. Aspose.Cells FOSS за замовчуванням використовує UTF-8; Excel у Windows може очікувати маркер порядку байтів (BOM), щоб правильно розпізнати кодування. Налаштуйте кодування за допомогою CSVSaveOptions і передайте його у save_as_csv().
Багатосторінкові робочі книги експортуються лише один лист
CSV — це формат з однією таблицею; лише один аркуш можна зберегти в одному файлі. Експортуйте кожен аркуш окремо, використовуючи set_active_worksheet(index), як показано у кроці 5.
Клітини, що містять роздільник
Якщо значення комірки містить символ розділювача (наприклад, кому у виводі, розділеному комами), Aspose.Cells FOSS автоматично бере значення в лапки під час експорту. За потреби використовуйте CSVSaveOptions для налаштування поведінки лапок.
FAQ
Q: Чи workbook.save("output.csv") дає той самий результат, що й save_as_csv()?
Так. Workbook.save() перевіряє розширення файлу і делегує save_as_csv(), коли розширення є .csv. Викличте save_as_csv() безпосередньо і передайте екземпляр CSVSaveOptions, коли потрібно налаштувати експорт поза вбудованими значеннями за замовчуванням.
Q: Чи можу я експортувати у рядок CSV замість файлу?
Так. Використайте CSVHandler.save_csv_to_string(workbook, options) з aspose.cells_foss.csv_handler. Це повертає вміст CSV як рядок Python, який ви можете записати у потік, завантажити або далі обробляти, не торкаючись файлової системи.
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)Q: Як завантажити CSV назад у робочу книгу після збереження?
Використайте Workbook.load_csv("file.csv") на існуючому Workbook‑екземплярі, або викличте зручну функцію load_csv_workbook("file.csv") з aspose.cells_foss.csv_handler, щоб отримати готову до використання робочу книгу в один крок.
Q: Які версії Python підтримуються?
Aspose.Cells FOSS вимагає Python 3.7 або новішої версії. Для експорту CSV не потрібні додаткові нативні розширення; бібліотека є чистим Python.
Q: Чи можу я зберегти лише частину листа (діапазон клітинок) у форматі 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