簡單試了下python下excel的操作,使用了xlrd、xlwt和xlutil3;xlrd可以實現excel的讀取操作,xlwt則是寫入excel操作,xlutils3主要是為了修改excel,簡單理解可以拷貝已有excel進行修改,生成新的excel表格。
安裝包下載地址
http://pypi.python.org/pypi/xlrd
http://pypi.python.org/pypi/xlwt
參考文檔地址
簡單程序實例
- import xlrd
- import xlwt
- import xlutils3
- from xlutils3 import copy
- #測試xlwt
- #創建新的excel文件
- newfile = xlwt.Workbook()
- #創建新的表單
- #addsheet的格式add_sheet(sheetname, cell_overwrite_ok=False)
- newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)
- #索引從0,0開始
- newsheet.write(0,0,'aaa')
- newsheet.write(0,0,10)
- newfile.save('firsttest.xls')
- #打開相應的excel文件
- workbook = xlrd.open_workbook(r'firsttest.xls')
- #找到相應的sheet
- #可以通過index,index從0開始計算
- #也可以通過sheet的名字
- rdsheet = workbook.sheet_by_index(0)
- rdsheet = workbook.sheet_by_name('test1')
- print(rdsheet.cell(0,0))
- #cell函數返回的是Cell 對象)包含ctype value xf_index
- #輸出number:10.0
- print(rdsheet.cell(0,0).ctype)
- #輸出2?使用type查詢結果為:<type 'member_descriptor'>具體含義?
- print(rdsheet.cell(0,0).value)
- #輸出10.0
- print(rdsheet.cell(0,0).xf_index)
- #輸出None
- rdbook = xlrd.open_workbook(r'firsttest.xls')
- wtbook = copy.copy(rdbook)
- wtsheet = wtbook.get_sheet(0)
- type(wtsheet)
- wtsheet.write(0,0,'aaaaa')
- wtbook.save('bb.xls')
- newrdbook = xlrd.open_workbook(r'bb.xls')
- print(newrdbook.sheet_by_name('test1').cell(0,0))
- #輸出text:'aaaaa'
- print(rdbook.sheet_by_index(0).cell(0,0))
- #輸出number:10.0
關於cell_overwrite_ok參數使用
- newsheet = newfile.add_sheet('test1')
- #索引從0,0開始
- newsheet.write(0,0,'aaa')
- newsheet.write(0,0,10)
- newfile.save('firsttest.xls')
彈出錯誤:Exception: Attempt to overwrite cell: sheetname=u'test1' rowx=0 colx=0
修改為不覆蓋已經有賦值的單元格是可以操作的:
- newsheet = newfile.add_sheet('test1')
- #索引從0,0開始
- newsheet.write(0,0,'aaa')
- newsheet.write(0,1,10)
如果需要覆蓋已經操作的單元格,需要設置cell_overwrite_ok=True:
- newsheet = newfile.add_sheet('test1',cell_overwrite_ok=True)
- #索引從0,0開始
- newsheet.write(0,0,'aaa')
- newsheet.write(0,0,10)
運行成功
如何在python擴展查詢需要的信息
如:當最初只知道使用newfile = xlwt.Workbook();創建一個新的文件時;
后續操作查詢:
可以通過type(newfile)得到類型<class 'xlwt.Workbook.Workbook'>;
然后時候使用help(xlwt.Workbook)查詢Workbook對應的接口,當然使用help(newfile)也是可以的;
如此往復找到需要的細節信息;
