簡體   English   中英

通過保留現有工作表並增加 excel 的列大小,將 DataFrame 轉換為 excel

[英]Convert DataFrame to excel by preserving existing sheets and increase the column size of excel

我正在嘗試將 DataFrame 轉換為 excel 而不覆蓋現有工作表。 解決方案是使用 pd.ExcelWriter 和支持 append 模式的 openpyxl 引擎。 現在,我必須增加 excel 的列大小,我將 pd.ExcelWriter 與 XlsxWriter 引擎一起使用,但它會覆蓋剩余的工作表。

Openpyxl 作為引擎:

with pd.ExcelWriter("test.xlsx", engine="openpyxl", mode="a") as writer:
  df.to_excel(writer, sheet_name="name", startrow=num, startcol=num)

XlsxWriter 作為引擎:

workbook   = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()
worksheet.set_column(0, 0, 20)

有人可以向我建議一個我可以做這兩件事的解決方案:

  1. 保留現有工作表
  2. 增加列寬

您可以使用 ExcelWriter 來調整列寬。 下面的例子。 請注意,您只能添加新選項卡和數據,不能更新現有選項卡中的文本。 但是,它不會刪除任何內容,例如 xlsxwriter。

from openpyxl.utils.cell import get_column_letter

startRow = 12  #Change as per your req
startCol = 3   #Change as per your req
with pd.ExcelWriter("test.xlsx", engine="openpyxl", mode="a") as writer:  #Your code
    df.to_excel(writer, sheet_name="name", startrow=startRow, startcol=startCol)  #Your code... mostly

    worksheet = writer.sheets['name'] #Get worksheet name    
    for i, col in enumerate(df.columns):  #For each column in df, set width to 60
        worksheet.column_dimensions[get_column_letter(startCol+i+1)].width = 60

暫無
暫無

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

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