Python操作excel

1

xlrd


xlrd用於在Excel中讀寫數據

1、打開Excel工作簿

data=xlrf.open_workbook('data.xlsx')

2、查看工作簿裏所有sheet名稱

data.sheet_names()

3、選擇一個工作表(通過索引或名稱)

#獲取第一個工作表
table=data.sheets()[0]
#通過索引獲取第一個工作表
table=data.sheet_by_index(0)
#通過表名稱選擇工作表
table=data.sheet_by_name('hello')

4、獲取表格的行數和列數

nrows=table.nrows
ncols=table.ncols

5、獲取整行和整列的值

table.row_values(number)
table.column_values(number)

6、獲取單元格的值

cell_A1=table.row(0)[0].value
cell_A1=table.cell(0,0).value
cell_A1=table.col(0)[0].value

xlrd的寫操作,原博沒寫,我用的是xlwt,所以日後再補。

xlwt

xlwt爲純寫入操作

1、新建一個Excel文件(只能通過新建寫入)

1 data=xlwt.Workbook()

2、新建一個工作簿

table=data.add_sheet('hello')

3、寫入數據到A1單元格

table.write(0,0,'666')

如果對同一個單元格重複操作,會引發overwrite Exception,想要取消該功能,需要在添加工作表時指定爲可覆蓋

table=data.add_sheet('hello',cell_overwrite_ok=True)

保存文件

data.save('test.xls')

不支持xlsx格式,只能保存擴展名xls

xlwt支持一定樣式如下:

#初始化樣式
style=xlwt.XFStyle()
#爲樣式創建字體
font=xlwt.Font()
#指定字體名字
font.name='Time New Roman'
#字體加粗
font.bold=True
#將該font設定爲style的字體
style.font=font
#寫入到文件時使用該樣式
sheet.write(0,1,'hello world',style)

openpyxl

該模塊支持最新版的Excel文件格式,對Excel具有相應的讀寫操作,對此有專門的Reader和Writer兩個類,便於Excel文件的操作。雖然如此,但一般還用默認的workbook
來進行操作。
1、讀取Excel常用操作

from openpyxl.reader.excel import load_workbook
wb=load_workbook(filename)

2、顯示工作表的索引範圍

wb.get_named_ranges()

3、顯示所有工作表的名字

wb.get_sheet_names()

4、取得第一張表

sheetnames=wb.get_sheet_names()
ws=wb.get_sheet_by_name(sheetnames[0])

5、獲取表名

ws.title

6、獲取表的行數

ws.get_highest_row()

7、獲取表的列數

ws.get_highest_column()

8、單元格的讀取,此處和xlrd的讀取方式很相近,都是通過行和列的索引來讀取

#讀取B1單元格中的內容
ws.cell(0,1).value

也支持通過Excel座標來讀取數據

#讀取B1單元格中的內容
ws.cell("B1").value

寫操作只有一種方式,就是通過座標,例如要向單元格C1
寫數據,就要用類似ws.cell(“C1”).value=something
這樣的方式。一般推薦用openpyxl中的writer類來實現


#ExcelWriter,裏面封裝好了對Excel的寫操作
from openpyxl.writer.excel import ExcelWriter  

#get_column_letter函數將數字轉換爲相應的字母,如1-->A,2-->B  
from openpyxl.cell import get_column_letter  

#新建一個workbook  
wb = Workbook()  

#新建一個excelWriter  
ew = ExcelWriter(workbook = wb)  

#設置文件輸出路徑與名稱  
dest_filename = r'empty_book.xlsx'  

#第一個sheet是ws  
ws = wb.worksheets[0]  

#設置ws的名稱  
ws.title = "range names"

#向某個單元格中寫入數據
ws.cell("C1").value=u'哈哈'

#最後保存文件
ew.save(filename=dest_filename)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章