2017-09-15 46 views
0

我想從excel文件中導出特定工作表,但沒有結果。我要一張特定表導出到一個完全新的文件,我所寫的是:導出特定工作表,並保存不同的文件openpyxl

import openpyxl 
book = openpyxl.load_workbook('C:\Python\test.xlsx') 
a = (book.get_sheet_names()) 
sheet1 = book[a[5]] 
sheet1.save('C:\Python\sheet2.xlsx') 

此外,還有一件事我不能做,並尋找一定的表,如果我有它的名字。

我很抱歉,如果問題很簡單,但因爲我與Python :)

+0

你是否已經在這個[問題]採取一看代碼(https://stackoverflow.com/questions/27101024/copy-whole-worksheet-with-openpyxl)? – floatingpurr

+0

Razel,我剛剛發佈了一個解決方案。讓我知道是否有幫助。 – floatingpurr

+0

工作表沒有保存方法,所以你不能這樣做。請花更多時間閱讀openpyxl文檔。 –

回答

1

好,openpyxl開始確實提供copy_worksheet()它已經有幾天,但不能在不同的工作簿之間使用。您可以逐個單元格複製工作表,也可以在內存中修改起始工作簿,然後使用不同的文件名保存它。這裏是

import openpyxl 

# your starting wb with 2 Sheets: Sheet1 and Sheet2 
wb = openpyxl.load_workbook('test.xlsx') 

sheets = wb.sheetnames # ['Sheet1', 'Sheet2'] 

for s in sheets: 

    if s != 'Sheet2': 
     sheet_name = wb.get_sheet_by_name(s) 
     wb.remove_sheet(sheet_name) 

# your final wb with just Sheet1 
wb.save('test_with_just_sheet2.xlsx') 
+0

並自動與wb。 remove_sheet命令,刪除我不需要的所有表單? – Razel

+0

是的,它會除去名爲'Sheet2'的所有工作表,並將它保存在新文件中,只需要您需要的工作表 – floatingpurr

+0

最後一個請求,如果我有un nome del foglio「hello world1,hello world2,等等「,我必須創建僅包含頁面名稱最後部分的文件,例如world1,world2等。我該怎麼做?與[0:5]是否正確?因此,我保存的文件名稱會根據名稱而更改。 – Razel

相關問題