xlrd/xlwt - python與excel表格交互

開始使用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
相關文章
相關標籤/搜索