从XLSX转换为CSV时,数字会发生变化

时间:2018-05-28 10:58:38

标签: python excel python-2.7 csv xlsx

这是我第一次在这里发帖,所以如果我错过了你通常的一些行为准则,我很抱歉。

我在使用Python将Excel(xlsx)文件转换为CSV文件时遇到问题。这是我工作所要求的,否则我不会这样做。所以我的excel文件结构如下:我有一个服务名称,我们的购买价格,以及我们的客户购买价格。

我面临的问题是,例如,当我在xlsx文件中有一行这样的行时:

BasicLevel    1798,20    1998,00
ExtremLevel   2,25       2,50

但每当我将我的xlsx文件转换为csv文件时,该行就变为:

BasicLevel    1516.41    1684.9
ExtremLevel   43344      43102

所以现在发生的事情是这些数字确实发生了变化。这使整个程序过时,因为数字必须正确。

这是我的xlsx到CSV转换代码:

def csv_from_excel_max():
    wb = xlrd.open_workbook("Pricelist.xlsx")
    sh = wb.sheet_by_name("EUR")
    result_file = open("result_file.csv", "wb")
    wr = csv.writer(result_file, delimiter=";")
    rownum = 0

    while rownum < sh.nrows:

            wr.writerow([str(sh.cell(rownum, 3).value.replace(u"\xa0", "").replace(u"\u2122", "")).encode("utf-8"),
                         sh.cell(rownum, 9).value,
                         sh.cell(rownum, 10).value])
            rownum += 1

1 个答案:

答案 0 :(得分:0)

好的,谢谢大家的贡献!在仔细检查您的号码时,请务必检查您是否正在查看正确的表单。事实上,当我使用欧元时,我打开了美元表。