基於Python實現excel表格讀寫

 

首先安裝對應的xlrd和xlwthtml

打開cmd命令窗口輸入pip install xlrd和pip install xlwt就能夠安裝。以後輸入pip list檢查是否成功配置:python

 

 

xlrd操做#

接下來就是經常使用的語法操做:svn

 

excel_data = xlrd.open_workbook(文件路徑')#獲得對應的工做表編碼

sheet = excel_data.sheets()[工做表序號]#獲得對應工做表中的某一個表格spa

sheet.row_values(2)#對應的某一行的數據excel

sheet.cell(6,1).value#對應某一列的數據code

 

 

 

以該表格爲例先試一下對應的語句:orm

先指定對應的表格和其中的某一個表,不然會提示出錯編譯不經過。將以上代碼運行獲得:   htm

源碼以下:對象

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表格通常關心的問題在於如下幾個方面:

  • 建立工做薄和表
  • 寫入單元格
  • 常見格式設置(貨幣文本等)
  • 建立公式
  • 保存

接下來依次嘗試以上提到的各個功能:

  1. 工做薄和表對應的對象爲: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')  #文件路徑要存在且不能同名

        結語和資料:

        到這裏這兩個excel處理的模塊操做基本結束了,還有其餘實現相關功能的模塊例如 openpyxl和win32com等有機會再寫一篇做爲橫向對比的博文。https://www.zhihu.com/people/dou-wo-45知乎傳送門歡迎留言交流。創做不易,保留權利。

 

        

官方資料:


下載地址:http://pypi.python.org/pypi/xlrd

官網地址:http://www.python-excel.org/


文檔地址:https://secure.simplistix.co.uk/svn/xlrd/trunk/xlrd/doc/xlrd.html

<a href="http://www.simplistix.co.uk/presentations/python-excel.pdf"> 文檔pdf下載</a>

相關文章
相關標籤/搜索