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

Python 从XLSX转换为CSV时,数字会发生变化,python,excel,python-2.7,csv,xlsx,Python,Excel,Python 2.7,Csv,Xlsx,这是我第一次在这里发帖,如果我错过了一些你们通常有的行为准则,我很抱歉 我在使用Python将Excel(xlsx)文件转换为CSV文件时遇到问题。这是我的工作要求,否则我就不会这么做了。因此,我的excel文件的结构如下:我有我们服务的名称、我们的购买价格以及我们的客户购买价格 我面临的问题是,例如,当我在xlsx文件中有这样一行时: BasicLevel 1798,20 1998,00 ExtremLevel 2,25 2,50 但每当我将xlsx文件转换为cs

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

我在使用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
def csv_from_excel_max():
wb=xlrd.open_工作簿(“Pricelist.xlsx”)
sh=wb.按名称列出的工作表(“欧元”)
结果文件=打开(“结果文件.csv”、“wb”)
wr=csv.writer(结果文件,分隔符=“;”)
rownum=0
当rownum
好的,谢谢大家的贡献!在重复检查数字时,请始终记住检查您所查看的表是否正确。事实上,当我使用欧元时,我打开了美元表。

这些值看起来像一个日期。您可能移动了一些列或行。问题可能在于小数点。值“2,25”由逗号分隔,在国际惯例中,逗号实际上是1000分隔符。尝试将你的极值改为“2.25”和“2.5”,然后重试(与BasicLevel相同)@Luuklag这不是问题所在。我的列和行是正确的,我已经仔细检查过了。@offeltoffel我试过了,但没有成功。从xlsx文件中提取出来的数字已经错了,所以我不知道会发生什么,这让我很恼火mad@Rivena,您应该检查您的工作表中是否存在这些数字。