首先安裝對應的xlrd和xlwt
開啟cmd命令視窗輸入pip install xlrd和pip install xlwt就可以安裝。之後輸入pip list檢查是否成功配置:
xlrd操作#
接下來就是常用的文法操作:
excel_data = xlrd.open_workbook(檔案路徑')#得到對應的工作表
sheet = excel_data.sheets()[工作表序號]#得到對應工作表中的某一個表格
sheet.row_values(2)#對應的某一行的資料
sheet.cell(6,1).value#對應某一列的資料
以該表格為例先試一下對應的語句:
先指定對應的表格和其中的某一個表,否則會提示出錯編譯不通過。將以上代碼運行得到:
源碼如下:
import xlrd
import xlwt
excel_data = xlrd.open_workbook(檔案路徑')
excel_data = xlrd.open_workbook(r'C:\Users\hys mac\Desktop\實用的excel表格模板.xls')
sheet = excel_data.sheets()[工作表序號]
sheet = excel_data.sheets()[0]
print(sheet.row_values(2)) #列印某一行資料
print(sheet.col_values(1))#列印某一列
print( )
print ( sheet.cell(6,1).value)#列印某個具體值
運行結果如下:
對比表格得到一些值得注意的地方,指定的行數列數是從0開始,開啟指定的表格時要注意絕對路徑時要連同檔案名稱和檔案尾碼也要帶上才能成功讀取資料。
接下來實驗讀取指定的某個儲存格的資料:
sheet.cell(行,列).value
運行得到:
對比表格得到資料:
是其中的(7,B),和之前提到的從零開始計數是一致的。
除了以上列舉的一些操作外還有其他的常見語句可以在相關文檔和官網中查看,文末有相關連結,接下來實驗另一個xlwt庫以實現對excel表格的寫入操作。
xlwt操作#
對於excel表格一般關心的問題在於以下幾個方面:
建立工作薄和表
寫入儲存格
常見格式設定(貨幣文本等)
建立公式
儲存
接下來依次嘗試以上提到的各個功能:
工作薄和表對應的對象為:workbook,sheet
2.儲存格賦值:
這裡嘗試了一下採用負數
編譯沒有問題留作後面儲存後檢查結果是否正確。
3.格式設定:
可見對應傳入參數除行列和值外還包括style這一預設省略的參數。這裡實驗設定的格式為加粗。其他格式可以參照尋找文末文檔實現。這裡有一些常見得其他格式:
style = easyxf(num_format_str='$#,##0.00')
# or set it directly on the style object
style = easyxf('font: bold 1')
style.num_format_str = '$#,##0.00'
sheet.write(0, 0, '100.00', style)
4.建立公式:
使用xlwt.Formula可以實現Excel公式。
sheet.write(0, 0, xlwt.Formula('HYPERLINK("http://yujitomita.com"; "click me")'))
5.儲存操作:
workbook.save("Python.xls")
wbk.save('路徑名')
這裡值得提醒的是工作表的命名要小於31個字元且不能包括特殊字元(:。,等)。
運行結果:
按照之前的坑(-1,0)這裡試運行結果:
# encoding : utf-8
import xlrd
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet 1")
#建立活頁簿(workbook)和工作表(sheet)
sheet.write(-1, 0, 'Python')#行列對應
style = xlwt.easyxf('font: bold 1')
sheet.write(1, 1, 'style ', style)
workbook.save('C:\Users\hys mac\Desktop\mr.c\python.xls')
報錯結果如下:
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
遇到了檔案編碼的問題,修改後一句:
workbook.save(r'C:\Users\hys mac\Desktop\mr.c\python.xls')
就回到了一開始留下的坑,儲存格賦值規則應該與使用習慣一致不能為負數。最後修改得到:
import xlrd
import xlwt
workbook = xlwt.Workbook()
sheet = workbook.add_sheet("Sheet 1")
#建立活頁簿(workbook)和工作表(sheet)
sheet.write(1, 0, 'Python')#行列對應
style = xlwt.easyxf('font: bold 1')
sheet.write(1, 1, 'style ', style)
workbook.save(r'C:\Users\hys mac\Desktop\mr.c\python1.xls') #檔案路徑要存在且不能同名