開始使用xlrd,下載安裝包,解壓,安裝省略 下載http://pypi.python.org/pypi/xlrd python
假設個人表格文件叫demo.xls,三個sheet,第一個sheet內容以下git
則要訪問3行第D列單元格則使用以下代碼 ---------------------------------------------------------------------------- >>> import xlrd >>> import os >>> import sys >>> wb=xlrd.open_workbook("demo.xls") >>> range(wb.nsheets) #能夠看到,一共有三個sheet,其索引爲0,1,2 [0, 1, 2] >>> sht1=wb.sheet_by_name("demo_sheet1") #等同於使用sht2=wb.sheet_by_index(0) >>> print sht1.cell_value(2,3) #索引從0開始,先行,後列,D4對應與(2,3) 是 >>> print sht1.cell_value(4,1) #B5對應(4,1) 餐飲 >>> for item in sht1.row_values(1): #能夠輸出整個一行,返回爲列表 print item, 4.0 電視劇 web 是
=========xlwt 寫============web
xlwt是python的一個能夠寫生成excel表格文件的module。主要特色在於寫的功能比較強大,提供了表單行數、列數、單元格數據類型等,在使用python的時候import xlrd就能夠,下載 http://pypi.python.org/pypi/xlwt,編寫以下代碼:函數
import xlwt測試
from datetime import datetime大數據
style0=xlwt.easyxf('font: name Times New Roman, color-index red, bold on', num_format_str='#,##0.00')spa
style1=xlwt.easyxf(num_format_str='D-MMM-YY')excel
wb = xlwt.Workbook()code
ws=wb.add_sheet("A Test Sheet")orm
ws.write(0,0,1234.56,style0)
ws.write(1,0,datetime.now(), style1)
ws.write(2,0,datetime.now()) #A3
ws.write(2,1,datetime.now()) #B3
ws.write(2,2,xlwt.Formula("A3+B3"))
wb.save("example.xls")
生成一個名爲」example.xls「的表格,以下: 其中C3(2行2列) 使用了公式 「=B2+B3」,很帥吧
寫了兩個和座標有關的函數def strPosition2Coordinate(strCoordinate = "A1"): ''' A,B....Z,AA,AB,AC....AZ,BA,內部將A-Z 與0-25對應,那麼這個列至關於26進制的整數 列字母限制在2位,且只支持到256列,即IV,如AB1,A3合法,ABC1,IW, IX等非法。 ''' nSplitPos = len(re.split("[0-9]+", strCoordinate)[0]) strRow, strCol = strCoordinate[nSplitPos:], strCoordinate[:nSplitPos] assert(strCol.isupper() and strRow.isdigit() and len(strCol) <= 2) idx = 0 for item in "ABCDEFGHIJKLMNOPQRSTUVWXYZ": exec("%s=%d" % (item, idx)); idx += 1 nRow, nCol = (int(strRow) - 1, 0) if len(strCol) == 1: exec("nCol = %s" % strCol) if len(strCol) == 2: exec("nCol = (%s + 1) * 26 + (%s + 1) - 1 " % (strCol[0], strCol[1])) assert(nCol <= 255) # return (nRow, nCol) def strCoordinate2Position(nRow = 0, nCol = 0): strCoordinate = "" assert(nCol <= 675) strBasicLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" nQuotient, nRemainder = nCol / 26, nCol % 26 if nQuotient == 0: strCoordinate = strBasicLetters[nRemainder] + str(nRow + 1) if nQuotient != 0: strCoordinate = strBasicLetters[nQuotient - 1] + strBasicLetters[nRemainder] + str(nRow + 1) return strCoordinate 從example裏提出的一些常見的功能函數,使用的時候能夠參考:echo python big-16Mb.py #大數據文件 echo python big-35Mb.py #大數據文件 python blanks.py #虛框,中劃線等 python col_width.py #設置列距 python country.py # python dates.py #各類日期及格式 python format.py #顏色,中劃線,加粗 python formulas.py #公式 python formula_names.py # python hyperlinks.py #超連接 python image.py #插入圖片 python merged.py #合併單元格和雙線邊框 python merged0.py #合併單元格 python merged1.py #邊框線 python mini.py #最小測試 python num_formats.py #數字格式,顏色 python outline.py python panes.py #黑線和分隔 python parse-fmla.py python protection.py #不知道什麼鳥東東 python row_styles.py #設置不一樣的行距 fnt = Font();fnt.height = i*20;style = XFStyle();style.font = fnt;ws.row(i).set_style(style) python row_styles_empty.py python simple.py python sst.py python unicode0.py #Оля python unicode1.py #不知道什麼鳥字符 python unicode2.py #漢語漢字,特殊字符等 python wsprops.py python xlwt_easyxf_simple_demo.py