[英]openpyxl: Issue reading $ and . from 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
輸入文件我已經包含了計費數據,但此功能轉換$ 2,000到2000年和0.00〜0
知道為什么嗎?
這是因為在 Excel 中,當您將單元格的格式設置為貨幣格式時,值 2000 顯示為 $2000.00,您不會更改單元格中的值,並且 openpyxl 正在讀取單元格中的值,而不是其格式化/顯示的演示文稿。 如果您在單元格中輸入了字符串“$2000.00”,那么這就是 openpyxl 會看到的內容。 同樣對於顯示兩位小數的顯示格式,所以0顯示為0.00,單元格中的值仍然是0,所以openpyxl看到的就是這個。
還有其他關於使用 xlrd 庫而不是 openpyxl 讀取單元格格式的問題:例如,請參閱如何在 Python 中獲取 Excel 單元格屬性和使用 XLRD 包識別 Excel 工作表單元格顏色代碼以及一般情況下 google python excel 讀取單元格格式
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.