Python xlrd将整数和字符串转换为浮点数

时间:2015-06-04 13:59:27

标签: python excel csv xlrd

我成功地尝试将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()
谢谢你的时间

1 个答案:

答案 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文件的副本。