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