2013-04-11 134 views
1

我對Python編碼相對較新,這裏是我的問題: 1-當我更新現有.xlsx文件(使用openpyxl)的數據時,結果是一個.xlsx,它丟失了以前的所有格式。我也嘗試過.xls(使用xlwt和xlrd),但沒有任何改變。因此,我決定保留這個未格式化的結果文件並應用模板.xls(x)文件的所有格式。Python - 將現有工作簿的格式應用到另一個工作簿

是否有直接的方法來保存第1步的格式?如果不是,我該如何執行第2步?

P.S:我試圖處理與xlutils.styles風格...但我沒能......

感謝您的幫助!

+1

現在格式化支持直接使用Excel文件(無Excel本身)工作的Python包是非常薄弱的​​。如果你將在一臺裝有Excel的機器上執行此操作,那麼現在最好的選擇(如果你想堅持使用Python)就是使用類似'pywin32'或'pywinauto'的東西。如果你打開非Python選項,VBScript其實不算太壞,它已經包含在機器上。 – 2013-04-23 22:05:50

回答

0

您可以使用xlrd獲取單元格的格式,並將其設置爲您在xlwt中編寫的單元格的樣式。電池的xf_index屬性是XFStyle對象的實例,可以直接傾倒入write方法的樣式參數,像這樣:

import xlwt,xlrd 
readbook = xlrd.open_workbook('book.xls', formatting_info=True) 
readsheet = readbook.sheet_by_index(0) 
cell = sheet.cell(0,0) 
writebook = xlwt.Workbook() 
writesheet = writebook.add_sheet('sheet1') 
writesheet.write(0,0,'First Cell', cell.xf_index) 

從那裏,你可以迭代,以滿足每個單元的格式,或者你可以寫每種格式爲行或列,如下所示:https://github.com/python-excel/xlwt/blob/master/xlwt/examples/row_styles.py

相關問題