python - python在开放式办公室中自动填写导入文本
问题描述
(Apache Open Office 中的字符集、分隔符选项和字段)
我拥有的原始文件是一个 csv 文件。我想使用 python 代码更改字符集、分隔符选项和字段并将其保存到 excel 文件中。是否可以自动填写这些选项?或者我可以使用什么语言来自动执行此操作?(我不能在 excel 中这样做,因为 excel 会删除我的一些特殊字符。)
解决方案
您可以使用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
推荐阅读
- makefile - 我可以控制 C++ 项目的 .d 依赖文件的输出目录吗?
- omnet++ - 如何在 omnet 中编写嵌套的 for 循环?
- objective-c - 处理左键和右键单击 NSStatusItem 的问题
- android - 如何以编程方式在有根的 android 设备中访问 /data/data/a.log 之类的根文件?
- c++ - 在c ++中交换短语中单词的前两个字母
- java - 当我们单击Java Swing中的按钮插入时,如何在数据库中自动插入时间戳记录?
- php - 循环中的批量短信 php 函数
- react-native - react-native-video 的 react-native-orientation 的反应原生布尔条件
- scala - 在 Spark Dataframe 中动态旋转多个列
- database - 存储有向图(游戏树)