簡體   English   中英

使用 openpyxl 將數組添加到 excel(格式問題)

[英]Adding array into excel using openpyxl (formatting issue)

我正在使用“openpyxl”將數組放入 excel 文件中,供用戶在 django 站點上下載。

數據使用以下循環進入 excel:

for row_num, row in enumerate(matrix, 3):
 for col_num, item in enumerate(row, col_start - 12):
        ws.cell(column=col_num, row=row_num, value=item)
wb.save(excel_file_path_from_db)

我的問題是當數據進入 excel 時不是數字格式。 我認為這可能是因為我通過以下方式從用戶輸入中獲取我的 atix 值:

matrix = ast.literal_eval(list(request.GET)[0])
print(matrix)

有什么想法可以讓我的矩陣以數字格式進入 excel 文件嗎?

聽起來你有字符串值。 cell() function 將設置結果 openpyxl.cell.cell.Cell object 的 data_type 屬性以嘗試匹配它。

如果將 cell() 的 output 分配給變量(例如單元格): cell = ws.cell(column=col_num, row=row_num, value=item)

然后print(cell.data_type) ,你可能會得到文本的“t”。

當您調用 ws.cell() 時,您應該能夠對item使用強制轉換運算符:

for row_num, row in enumerate(matrix, 3):
 for col_num, item in enumerate(row, col_start - 12):
    ws.cell(column=col_num, row=row_num, value=float(item))
wb.save(excel_file_path_from_db)

另一個對我有用的選擇:

for row_num, row in enumerate(matrix, 3):
 for col_num, item in enumerate(row, col_start - 12):
    cell = ws.cell(column=col_num, row=row_num, value=item)
    cell.data_type = "n"
wb.save(excel_file_path_from_db)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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