Tôi có tệp * .xlsm có 20 trang tính trong đó. Tôi muốn lưu một số trang tính dưới dạng * .csv (mất định dạng). Đã thử các thư viện xlrd-xlwt và win32com nhưng không thể vượt qua được. Có ai vui lòng cung cấp đoạn mã thực hiện việc xử lý ở trên bằng Python không? Tôi có các phụ thuộc python khác nên không có ngôn ngữ nào khác hoạt động. Cảm ơnCách trích xuất trang tính từ * .xlsm và lưu nó dưới dạng * .csv bằng Python?
Trả lời
xlrd cũng hoạt động tốt trên các tệp xlsm. Tôi đã thử nghiệm mã với một tệp xlsm ngẫu nhiên và nó hoạt động hoàn hảo.
import csv
import xlrd
workbook = xlrd.open_workbook('test.xlsx')
for sheet in workbook.sheets():
with open('{}.csv'.format(sheet.name), 'wb') as f:
writer = csv.writer(f)
writer.writerows(sheet.row_values(row) for row in range(sheet.nrows))
Nếu bạn đã mã hóa các vấn đề, hãy thử đoạn code dưới đây:
import csv
import xlrd
workbook = xlrd.open_workbook('test.xlsm')
for sheet in workbook.sheets():
if sheet.name == "Sheet_name_from_xlsm_file":
with open('{}.csv'.format(sheet.name), 'wb') as f:
writer = csv.writer(f)
for row in range(sheet.nrows):
out = []
for cell in sheet.row_values(row):
try:
out.append(cell.encode('utf8'))
except:
out.append(cell)
writer.writerow(out)
Nếu cách này không hiệu quả, bạn nên tải lên tệp dữ liệu của mình nếu có thể. –
Cảm ơn bạn đã trích đoạn nội dung! Tôi nhận được lỗi này: writer.writerows (sheet.row_values (hàng) cho hàng trong phạm vi (sheet.nrows)) UnicodeEncodeError: 'ascii' codec không thể mã hóa ký tự u '\ xb5' ở vị trí 0: thứ tự không nằm trong phạm vi (128) Có cách nào để chỉ định mã hóa ở đây không? Rất tiếc, không thể tải tệp lên đây. – iPirate
@iPirate Tôi nghĩ rằng bạn cần phải mã hóa các chuỗi với utf8 hoặc một cái gì đó tương tự. Hãy thử cp1252 nếu nó không hoạt động. Tôi đã cập nhật câu trả lời của mình. –
- 1. Lưu các trang tính Excel riêng lẻ dưới dạng CSV
- 2. Cách trích xuất trang trình bày từ video bằng python
- 3. Làm cách nào để lưu tệp Google Trang tính dưới dạng CSV từ Python 3 (hoặc 2)?
- 4. Cách trích xuất URL từ một trang HTML bằng Python
- 5. django admin - xuất khẩu dưới dạng csv
- 6. Trích xuất cột từ data.frame dưới dạng Vector
- 7. Lưu tệp * .xlsm dưới dạng * .xlsx và chặn cửa sổ bật lên
- 8. Làm cách nào để xuất sqlite sang CSV bằng Python mà không bị định dạng dưới dạng danh sách?
- 9. Python: Làm cách nào để trích xuất URL từ Trang HTML bằng cách sử dụng BeautifulSoup?
- 10. Lưu tiff CCITTFaxDecode (từ trang PDF) bằng iText và Java
- 11. Chiến lược Python để trích xuất văn bản từ các trang html không đúng định dạng
- 12. Làm cách nào để tạo nhật ký cam kết git cho tháng trước và xuất nó dưới dạng CSV?
- 13. Trích xuất VBA từ bảng tính Excel
- 14. Trích xuất tọa độ từ tệp KML BatchGeo bằng Python
- 15. Trích xuất Từ khoá Meta Từ Trang web?
- 16. Văn bản từ trang web xuất hiện dưới dạng Gibberish thay vì tiếng Hebrew
- 17. Xuất mỗi trang tính thành tệp csv riêng lẻ
- 18. Tôi có thể lưu bảng tính EXCEL dưới dạng CSV qua ClosedXML không?
- 19. Cho URL dưới dạng chuỗi, cách trích xuất miền và tiện ích mở rộng?
- 20. Cách trích xuất tệp từ lưu trữ zip trong S3
- 21. Lưu tệp xlsx Excel dưới dạng tệp CSV - Tiếng Hàn và tiếng Nhật nứt nặng
- 22. Biên dịch/Lưu/Xuất HTML dưới dạng Hình ảnh PNG bằng cách sử dụng Jquery
- 23. Truy vấn mysql và xuất dữ liệu dưới dạng CSV trong PHP
- 24. Chương trình trích xuất và lưu trữ từ HTTP_REFERER
- 25. Trích xuất luồng Python
- 26. cách trích xuất dữ liệu từ tệp xml bằng notepad ++?
- 27. Trích xuất/Xác định bảng từ PDF python
- 28. Cách lưu trang aspx hiện tại dưới dạng html
- 29. Trích xuất dữ liệu EXIF dưới dạng văn bản bằng ImageMagick
- 30. Pandas đọc csv dưới dạng chuỗi
Theo như tôi nhớ, tất cả các định dạng Microsoft Office gần đây là XML đóng gói vào thùng chứa Zip. Vì vậy, có lẽ bạn có thể xem các nguồn tệp .xlsm, làm rõ cấu trúc XML của nó và sau đó trích xuất các trường bắt buộc. – user3159253