Cách Lưu Bảng Tính dưới dạng CSV trong Python
Vấn đề
Lưu một workbook Excel (.xlsx) dưới dạng tệp CSV bằng Aspose.Cells FOSS trong Python. Tải workbook với Workbook(), sau đó gọi save_as_csv() để ghi worksheet đang hoạt động vào tệp giá trị phân tách bằng dấu phẩy. Tùy chọn, truyền một đối tượng CSVSaveOptions để kiểm soát dấu phân cách, mã hoá và hành vi dấu ngoặc kép.
Điều kiện tiên quyết
Để lưu bảng tính dưới dạng CSV bằng Aspose.Cells FOSS trong Python, hãy đảm bảo môi trường của bạn đáp ứng các yêu cầu sau.
- Đã cài đặt Python 3.7 hoặc phiên bản mới hơn
- Cài đặt Aspose.Cells FOSS qua
pip install aspose-cells-foss>=26.3.1 - Nhập thư viện bằng
from aspose.cells_foss import Workbook - Có kiến thức cơ bản về xử lý tệp Python
Các bước lưu
Bước 1: Cài đặt Thư viện
Cài đặt Aspose.Cells FOSS từ PyPI. Không cần tệp giấy phép cho việc sử dụng FOSS.
pip install aspose-cells-fossBước 2: Tải Workbook
Khởi tạo Workbook với đường dẫn tới tệp .xlsx hiện có. Hàm khởi tạo chấp nhận một tham số password tùy chọn cho các workbook được bảo vệ.
from aspose.cells_foss import Workbook
workbook = Workbook("input.xlsx")Để làm việc với một workbook mới hoàn toàn, hãy bỏ qua đường dẫn tệp:
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.95Bước 3: Lưu Trang Đang Hoạt Động dưới dạng CSV
Gọi Workbook.save_as_csv() với đường dẫn đầu ra mong muốn. Phương thức sẽ ghi worksheet đầu tiên (đang hoạt động) theo mặc định.
workbook.save_as_csv("output.csv")Ngoài ra, hãy sử dụng phương pháp chung Workbook.save() — Aspose.Cells FOSS suy ra định dạng CSV từ phần mở rộng .csv:
workbook.save("output.csv")Cả hai lời gọi đều tạo ra đầu ra giống hệt nhau khi không cần tùy chọn tùy chỉnh.
Bước 4: Lưu với các tùy chọn CSV
Workbook.save_as_csv() chấp nhận một thể hiện CSVSaveOptions tùy chọn làm đối số thứ hai. Tạo một CSVSaveOptions từ aspose.cells_foss.csv_handler và truyền trực tiếp nó để kiểm soát hành vi xuất khẩu, chẳng hạn như chọn dấu phân cách hoặc mã hoá không mặc định.
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)Khi không truyền CSVSaveOptions, save_as_csv() sẽ sử dụng các giá trị mặc định được tích hợp sẵn của thư viện (dấu phẩy làm dấu phân cách, mã hoá UTF-8). Hãy truyền đối tượng tùy chọn mỗi khi bạn cần ghi đè các giá trị mặc định này một cách lập trình.
Bước 5: Xuất một Worksheet cụ thể
Khi một workbook chứa nhiều sheet, sheet đang hoạt động sẽ được xuất. Sử dụng Workbook.set_active_worksheet() để chọn sheet nào sẽ xuất trước khi lưu.
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")Để xuất mỗi sheet ra tệp CSV riêng, lặp lại qua 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")Ví dụ hoàn chỉnh
Ví dụ tự chứa dưới đây tạo một workbook, điền dữ liệu mẫu vào và lưu nó dưới dạng cả CSV tiêu chuẩn và CSV phân tách bằng dấu chấm phẩy.
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.")Các vấn đề thường gặp
Tệp đầu ra rỗng
Nếu tệp CSV đầu ra trống hoặc chỉ chứa các dòng trắng, hãy xác minh rằng các giá trị ô đã được gán trước khi gọi save_as_csv(). Phương thức xuất worksheet đang hoạt động — xác nhận sheet đúng đang được kích hoạt bằng cách sử dụng workbook.get_active_worksheet().
Vấn đề mã hoá (Ký tự bị rối)
Khi mở một tệp CSV trong Excel và thấy các ký tự bị hỏng, hãy kiểm tra mã hóa được sử dụng trong quá trình xuất. Aspose.Cells FOSS mặc định là UTF-8; Excel trên Windows có thể yêu cầu dấu byte-order mark (BOM) để nhận dạng mã hóa một cách chính xác. Cấu hình mã hóa qua CSVSaveOptions và truyền nó vào save_as_csv().
Sổ làm việc đa trang tính chỉ xuất một trang
CSV là định dạng bảng đơn; chỉ một worksheet có thể được lưu trong mỗi tệp. Xuất mỗi sheet riêng lẻ bằng cách sử dụng set_active_worksheet(index) như được hiển thị trong Bước 5.
Các Ô Chứa Dấu Phân Cách
Nếu giá trị ô chứa ký tự phân tách (ví dụ, dấu phẩy trong đầu ra phân tách bằng dấu phẩy), Aspose.Cells FOSS tự động đặt dấu ngoặc kép cho giá trị khi xuất. Sử dụng CSVSaveOptions để tùy chỉnh hành vi đặt dấu ngoặc nếu cần.
Câu hỏi thường gặp
Q: workbook.save("output.csv") có tạo ra kết quả giống như save_as_csv() không?
Vâng. Workbook.save() kiểm tra phần mở rộng tệp và ủy quyền cho save_as_csv() khi phần mở rộng là .csv. Gọi save_as_csv() trực tiếp và truyền một thể hiện CSVSaveOptions khi bạn cần tùy chỉnh việc xuất ra vượt quá các mặc định được tích hợp.
Q: Tôi có thể xuất ra một chuỗi CSV thay vì một tệp không?
Có. Sử dụng CSVHandler.save_csv_to_string(workbook, options) từ aspose.cells_foss.csv_handler. Điều này trả về nội dung CSV dưới dạng chuỗi Python, bạn có thể ghi nó vào một luồng, tải lên, hoặc xử lý tiếp mà không cần chạm vào hệ thống tệp.
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)Câu hỏi: Làm thế nào để tải lại CSV vào workbook sau khi đã lưu?
Sử dụng Workbook.load_csv("file.csv") trên một thể hiện Workbook hiện có, hoặc gọi hàm tiện lợi load_csv_workbook("file.csv") từ aspose.cells_foss.csv_handler để nhận một workbook đã sẵn sàng sử dụng trong một bước.
Q: Phiên bản Python nào được hỗ trợ?
Aspose.Cells FOSS yêu cầu Python 3.7 trở lên. Không cần bất kỳ phần mở rộng gốc nào bổ sung cho việc xuất CSV; thư viện này hoàn toàn bằng Python.
Q: Tôi có thể lưu chỉ một phần của bảng tính (một phạm vi ô) dưới dạng CSV không?
Aspose.Cells FOSS xuất toàn bộ phạm vi đã sử dụng của bảng tính đang hoạt động. Để giới hạn đầu ra trong một phạm vi cụ thể, sao chép các ô mong muốn vào một workbook tạm thời và xuất workbook đó.
Xem thêm
- Cách Lưu Tệp với Aspose.Cells FOSS — tổng quan lưu tệp chung bao gồm XLSX và Markdown
- Cách Chuyển Đổi CSV sang JSON trong Python — tải CSV và xuất ra định dạng JSON
- Cách Xuất Excel sang Markdown trong Python — xuất bảng Markdown bằng cách sử dụng
save_as_markdown() - Aspose.Cells FOSS cho Python: Hướng Dẫn Nhà Phát Triển — tài liệu tính năng toàn diện
- Tham Khảo API —
Workbook,CSVHandler,CSVSaveOptions