use*_*288 4 python csv excel python-3.x xlsxwriter
我正在尝试使用python的xlsxwriter包创建一个Excel文件。目前,我已经完成所有格式化,现在我需要做的就是导入正确的数据。为此,我正在使用csv包读取csv / txt文件。但是,当我从csv中读取数据并将其输出到xlsx文件时,所有数字/日期/等都被格式化为文本。我相信这是因为当我读取文件时,每个数据点中的文件都被单引号引起来(例如:'00082424')。这会导致excel将其读取为文本(它甚至抛出那些小注释错误之一,说它看起来像是一个以'开头的数字),因此保留了前导零。我如何从csv中读取数据并使用xlsxwriter导出数据,以使所有内容都不以'开头?
这是我用于读取和输出的代码的简化版本:
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
Run Code Online (Sandbox Code Playgroud)
默认情况下,XlsxWriter将Python string数据作为Excel字符串写入。
但是,在这种情况下,当从csv或文本文件中读取数据始终为字符串的情况时,可以使用构造函数选项将数字字符串转换为Excel数字:
workbook = xlsxwriter.Workbook('Test.xlsx', {'strings_to_numbers': True})
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见XlsxWriter 构造函数和write()文档。
| 归档时间: |
|
| 查看次数: |
5562 次 |
| 最近记录: |