首先安裝對應的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') #文件路徑要存在且不能同名
本文原創發布php中文網,轉載請注明出處,感謝您的尊重!