回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我正在尝试使用python的xlsxwriter包创建一个excel文件。目前我已经完成了所有的格式化,现在我需要做的就是导入正确的数据。为此,我使用csv包读取csv/txt文件。但是,当我从csv读取数据并将其输出到xlsx文件时,所有的数字/日期/等等都是以文本形式出现的。我相信这是因为当我读取文件时,每个数据点都被单引号包围(例如:“00082424”)。这会导致excel将其读取为文本(它甚至会抛出一个小的注释错误,说它看起来像一个前面有a的数字),并因此保留前导零。如何从csv中读取数据,并使用xlsxwriter将其导出,以使所有内容前面都不带'?</p>
<p>以下是我用于读入和输出的代码的简略版本:</p>
<pre><code>import csv
import xlsxwriter
""" Create a workbook and add worksheets """
workbook = xlsxwriter.Workbook('Test.xlsx')
worksheet1 = workbook.add_worksheet('Raw Data')
""" Read csv file """
with open("filename.txt") as filein:
reader = csv.reader(filein, skipinitialspace = True)
ind, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u = zip(*reader)
""" Start from the cell C5. Rows and columns are zero indexed """
row = 4
col = 2
money_format = workbook.add_format({'num_format': '$#,##0'})
for d_dat in list(p):
worksheet1.write(row, col, d_dat, money_format)
row +=1
row = 4
</code></pre>