繁体   English   中英

从 Microsoft excel csv 文件复制范围

[英]Copy range from Microsoft excel csv file

有没有办法将单元格范围从 Microsoft excel csv 复制到同一文件中的其他单元格,就像普通的 .xlsx 文件一样,或者复制到新的 .xlsx 文件?

替代方法是简单地将此文件保存为 .xlsx 格式,但由于 UTF-16 LE 编码,我在使用此方法时也遇到了问题。

没有Excel CSV文件。 CSV 是具有特定最小格式的纯文本文件。 另一方面, xlsx文件是包含 XML 文件的 ZIP 包。 我怀疑您真正要问的是如何读取使用一种编码保存的 CSV 文本文件并将其转换为 XLSX。

这个问题的答案显示了如何做到这一点:

  • 使用csv库加载 CSV 文件,然后
  • 使用openpyxl将其写出到 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 文件进行读取,因此默认情况下该文件将使用系统默认编码解码为 un​​icode(请参阅 locale.getpreferredencoding())。 要使用不同的编码解码文件,请使用 open 的 encoding 参数

您可能必须使用utf-8utf-8-sigutf-16-le编码:

with open('file.csv', encoding='utf-8') as f:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM