我成功地尝试将excel文件转换为csv,但它将我的所有数字(尽管它们是excel文件中的整数或文本)转换为浮点数。
我知道python默认将数字读作浮点数。
有没有机会将我的所有数字都变成字符串?
我的代码吼叫
def Excel2CSV(ExcelFile, SheetName, CSVFile):
import xlrd
import csv
workbook = xlrd.open_workbook(ExcelFile)
worksheet = workbook.sheet_by_name(SheetName)
csvfile = open(CSVFile, 'wb')
wr = csv.writer(csvfile, delimiter=';', quoting=csv.QUOTE_NONNUMERIC)
for rownum in xrange(worksheet.nrows):
wr.writerow(
list(x.encode('utf-8') if type(x) == type(u'') else x
for x in worksheet.row_values(rownum)))
csvfile.close()
谢谢你的时间
答案 0 :(得分:0)
我的解决方法是首先通过新的嵌套列表逐个处理Excel文件,然后将该嵌套列表写入CSV文件。
通过访问单个单元格值,我可以将它们转换为字符串数据类型,它将单元格的内部保留在CSV文件中(当然,删除了字符串引号)。
以下是我如何访问单个Cell值:
for rownum in xrange(worksheet.nrows):
for col_num in xrange ( worksheet.ncols ) :
value = str ( worksheet.row (rownum ) [ column_num ].value )
我将这些处理过的单元格值附加到单个行,并将该行附加到嵌套列表,该列表用作原始输入excel文件的副本。