簡體   English   中英

使用openpyxl激活第二個工作表

[英]Activate second worksheet with openpyxl

我正在嘗試激活多個excel工作表,並使用python和openpyxl寫入兩個工作簿中的多個工作表。 我能夠加載第二個工作簿f但我無法用字符串Recon附加我的第二個工作簿的單元格G2

from openpyxl import Workbook, load_workbook

filename = 'sda_2015.xlsx'

wb = Workbook()
ws = wb.active

ws['G1'] = 'Path'
ws.title = 'Main'

adf = "Dirty Securities 04222015.xlsx"
f = "F:\\ana\\xlmacro\\" + adf

wb2 = load_workbook(f)
"""
wb22 = Workbook(wb2)
ws = wb22.active

ws['G1'] = "Recon2"
ws.title = 'Main2'
"""
print wb2.get_sheet_names()

wb.save(filename)

我注釋掉了破壞的代碼

更新我使用以下答案調整了我的代碼。 單元格H1的值寫入H列中的wb2 ,但由於某種原因,該列被隱藏。 我已將列調整為其他列,但我仍然看到代碼隱藏了多個列。 代碼執行時也會出現,並且標題ws2Main21但編碼值為Main2

from openpyxl import Workbook, load_workbook

filename = 'sda_2015.xlsx'

wb1 = Workbook()
ws1 = wb1.active

ws1['G1'] = 'Path'
ws1.title = 'Main'

adf = "Dirty Securities 04222015.xlsx"
f = "F:\\ana\\xlmacro\\" + adf

wb2 = load_workbook(f)

ws2 = wb2.active

ws2['H1'] = 'Recon2'
ws2.title = 'Main2'

print wb2.get_sheet_names()

wb1.save(filename)
wb2.save(f)

如果你有兩個工作簿打開,wb1和wb2,你還需要不同的工作表名稱: ws1 = wb1.activews2 = wb2.active

如果您正在處理帶有宏的文件,則在打開它時需要將keep_vba標志設置為True以保留宏。

隱形細胞我經歷過同樣的事情。 最后,我解壓縮了Excel文件並查看了原始XML,發現並非所有列都有寬度尺寸。 沒有寬度的那些是Excel。

快速解決方法是做這樣的事......

for col in 'ABCDEFG':
    if not worksheet.column_dimensions[col].width:
        worksheet.column_dimensions[col].width = 10

暫無
暫無

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

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