openpyxl:发布阅读 $ 和 .来自 xlsx
openpyxl: Issue reading $ and . from xlsx
我想使用 python 将 xlsx 文件转换为制表符分隔的 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
我的输入文件包含账单数据,但此函数正在将 $2,000 转换为 2000 和 0.00 到 0
知道为什么吗?
这是因为在 Excel 中,当您将单元格的格式设置为例如货币格式,因此值 2000 显示为 $2000.00,您没有更改单元格中的值,openpyxl 正在读取单元格中的值,而不是它的 formatted/displayed 表示。如果您在单元格中键入了字符串 '$2000.00,那么这就是 openpyxl 会看到的内容。同样对于显示两位小数的显示格式,所以0显示为0.00,单元格中的值仍然是0,所以这就是openpyxl看到的。
SO 还有其他关于使用 xlrd 库而不是 openpyxl 读取单元格格式的问题:例如,请参阅 How to get Excel cell properties in Python and Identifying Excel Sheet cell color code using XLRD package 和一般 google python excel 读取单元格格式
我想使用 python 将 xlsx 文件转换为制表符分隔的 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
我的输入文件包含账单数据,但此函数正在将 $2,000 转换为 2000 和 0.00 到 0
知道为什么吗?
这是因为在 Excel 中,当您将单元格的格式设置为例如货币格式,因此值 2000 显示为 $2000.00,您没有更改单元格中的值,openpyxl 正在读取单元格中的值,而不是它的 formatted/displayed 表示。如果您在单元格中键入了字符串 '$2000.00,那么这就是 openpyxl 会看到的内容。同样对于显示两位小数的显示格式,所以0显示为0.00,单元格中的值仍然是0,所以这就是openpyxl看到的。
SO 还有其他关于使用 xlrd 库而不是 openpyxl 读取单元格格式的问题:例如,请参阅 How to get Excel cell properties in Python and Identifying Excel Sheet cell color code using XLRD package 和一般 google python excel 读取单元格格式