首页 > 解决方案 > python在开放式办公室中自动填写导入文本

问题描述

导入文本

(Apache Open Office 中的字符集、分隔符选项和字段)

我拥有的原始文件是一个 csv 文件。我想使用 python 代码更改字符集、分隔符选项和字段并将其保存到 excel 文件中。是否可以自动填写这些选项?或者我可以使用什么语言来自动执行此操作?(我不能在 excel 中这样做,因为 excel 会删除我的一些特殊字符。)

标签: pythonopenoffice.org

解决方案


您可以使用xlsxwriter模块制作 XLSX 文件:https ://xlsxwriter.readthedocs.io/index.html

假设您有一个编码为 CP1251 的 CSV 文件,并且您想要获取编码为 UTF8 的 XLSX 文件。这是如何完成的:

import xlsxwriter # pip3 install xlsxwriter

# get data from the csv file with non utf8 encoding
with open('data_cp1251.csv', 'r', encoding='cp1251') as f:
    data = f.read()

# convert the data into 2d array
table = [row.split(",") for row in data.split("\n")]

# create xlsx file (utf8 encoding by default)
ss = xlsxwriter.Workbook('data.xlsx')
s = ss.add_worksheet()

# fill the xlsx file with the 2d array
for row_num, row in enumerate(table):
    for col_num, cell in enumerate(row):
        s.write(row_num, col_num, cell)

ss.close() # here you get the 'data.xlsx' file

对于简单的情况,即使源 CSV 文件具有制表\t符分隔符,它也可以工作。但它需要测试你的真实数据。

据我所知,默认情况下,新 xlsx 文件中的所有字段都是“文本字段”。您可以随时更改其格式,请参见此处:https ://xlsxwriter.readthedocs.io/format.html#format


推荐阅读