openpyxl:读取$和。 来自xlsx

我想使用python将xlsx文件转换为TAB分隔的csv。 阅读后,我被指向名为openpyxl的库(下面的代码)

def importXLSX(fileName): temp = os.path.basename(fileName).split('.xlsx') tempFileName = os.path.dirname(os.path.abspath(fileName))+"/TEMP_"+temp[0]+".csv" tempFile = open(tempFileName,'w') wb = load_workbook(filename=fileName) ws = wb.worksheets[0] #Get first worksheet for row in ws.rows: #Iterate over rows for cell in row: cellValue = "" if cell.value is not None: cellValue = cell.value tempFile.write(cellValue+'\t') tempFile.write('\n') os.remove(fileName) return tempFileName 

我input的文件包含账单数据,但是这个函数将$ 2,000转换为2000,0.00转换为0

任何想法为什么?

这是因为在Excel中,如果将单元格的格式设置为例如货币格式,则值2000显示为$ 2000.00,则不会更改单元格中的值,而openpyxl正在读取单元格中的值,而不是格式化/显示演示。 如果你在单元格中input了string“$ 2000.00”,那么这就是openpyxl会看到的。 同样,对于显示两位小数的显示格式,所以0显示为0.00,单元格中的仍然为0,这就是openpyxl所看到的。

还有其他关于如何使用xlrd库而不是openpyxl读取单元格格式的问题:例如,请参阅如何获取Excel中的Excel单元格属性以及使用XLRD软件包识别Excel表格单元格颜色代码,以及一般情况下google python excel读取单元格格式