在python中,對excel表格讀,寫,追加數據,用以下三個模塊:
1、xlrd 讀取excel表中的數據
2、xlwt 創建一個全新的excel文件,然后對這個文件進行寫入內容以及保存。
3、xlutils 讀入一個excel文件,然后進行修改或追加,不能操作xlsx,只能操作xls。
一、讀excel表
讀excel要用到xlrd模塊
1、導入模塊 import xlrd
2、打開excel文件
table = data.sheets()[0] #通過索引順序獲取
table = data.sheet_by_index(0) #通過索引順序獲取
table = data.sheet_by_name(u'Sheet1')#通過名稱獲取
代碼如下:
import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table1 = data.sheets()[0]
table2 = data.sheet_by_index(0)
table3=data.sheet_by_name(u'Sheet1')
print(table1)
print(table2)
print(table3)
返回:
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
<xlrd.sheet.Sheet object at 0x0000000002F7F208>
3、獲取行數和列數
import xlrd
data = xlrd.open_workbook(r"C:\Users\907968\Desktop\test.xlsx")
table = data.sheets()[0]
nrows = table.nrows
ncols = table.ncols
print("行數:%d\n列數:%d"%(nrows,ncols))
返回:
行數:13
列數:3
4、獲取整行和整列的值,以列表形式返回
rows = table.row_values(0)
cols = table.col_values(0)
print("rows:%s\ncols:%s"%(rows,cols))
返回:
rows:['A1', 'B1', 'C1']
cols:['A1', 'A2', 'A3', 'A4', 'A5', 'A6', 'A7', 'A8', 'A9', 'A10', 'A11', 'A12', 'A13']
5、獲取單元格數據
cell_A1 = table.cell_value(0,0)
cell_C4 = table.cell_value(3,2)
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))
返回:
A1:A1
C4:C4
還可以使用行列索引來獲取單元格數據
cell_A1 = table.row(0)[0].value
cell_C4 = table.col(2)[3].value
print("A1:%s\nC4:%s"%(cell_A1,cell_C4))
返回:
A1:A1
C4:C4
三、寫excel操作
1、導入:
import xlwt
2、創建workbook
workbook = xlwt.Workbook(encoding='utf-8', style_compression=0)
encoding:設置字符編碼,一般要這樣設置:w = Workbook(encoding=’utf-8’),就可以在excel中輸出中文了。默認是ascii
style_compression:表示是否壓縮,不常用。
3、創建一個sheet對象,一個sheet對象對應Excel文件中的一張表格
sheet = workbook.add_sheet('test', cell_overwrite_ok=True)
其中的test是這張表的名字,cell_overwrite_ok,表示是否可以覆蓋單元格,其實是Worksheet實例化的一個參數,默認值是False
4、向表中添加數據
sheet.write(0, 0, 'EnglishName') # 其中的'0-行, 0-列'指定表中的單元,'EnglishName'是向該單元寫入的內容
sheet.write(1, 0, 'Marcovaldo')
txt1 = '中文名字'
sheet.write(0, 1, txt1)
txt2 = '馬可瓦多'
sheet.write(1, 1, txt2)
5、保存
workbook.save(r'e:\test1.xls')
四、追加數據
import xlrd
import xlutils.copy
data = xlrd.open_workbook(r'C:\Users\907968\Desktop\test222.xls')
ws = xlutils.copy.copy(data)
table=ws.get_sheet(0)
table.write(0,3,'D1')
ws.save(r'C:\Users\907968\Desktop\test222.xls')
追加前:
A1 B1 C1
追加后:
A1 B1 C1 D1
---------------------
作者:EastonLiu
來源:CSDN
原文:https://blog.csdn.net/lmj19851117/article/details/78814721
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
