簡體   English   中英

openpyxl:發出讀取 $ 和 . 來自 xlsx

[英]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,0002000年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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM