[英]Copy range from Microsoft excel csv file
有没有办法将单元格范围从 Microsoft excel csv 复制到同一文件中的其他单元格,就像普通的 .xlsx 文件一样,或者复制到新的 .xlsx 文件?
替代方法是简单地将此文件保存为 .xlsx 格式,但由于 UTF-16 LE 编码,我在使用此方法时也遇到了问题。
没有Excel CSV
文件。 CSV 是具有特定最小格式的纯文本文件。 另一方面, xlsx
文件是包含 XML 文件的 ZIP 包。 我怀疑您真正要问的是如何读取使用一种编码保存的 CSV 文本文件并将其转换为 XLSX。
这个问题的答案显示了如何做到这一点:
import csv
import openpyxl
wb = openpyxl.Workbook()
ws = wb.active
with open('file.csv') as f:
reader = csv.reader(f)
for row in reader:
ws.append(row)
wb.save('file.xlsx')
CSV 文件使用open
读取。 正如csv
文档警告的那样:
由于 open() 用于打开 CSV 文件进行读取,因此默认情况下该文件将使用系统默认编码解码为 unicode(请参阅 locale.getpreferredencoding())。 要使用不同的编码解码文件,请使用 open 的 encoding 参数
您可能必须使用utf-8
、 utf-8-sig
或utf-16-le
编码:
with open('file.csv', encoding='utf-8') as f:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.