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读取单元格格式