Python 操作 Excel
文章目錄
- Python 操作 Excel
- 用 xlrd 模塊讀取 Excel
- xlrd 安裝
- xlrd 常用函式
- 打開,加載作業簿
- 獲取作業表
- Excel 行操作與列操作
- Excel 單元格操作
- 用 xlwt 模塊寫入 Excel
- xlrd 安裝
- 創建作業簿并添加作業表
- 調整單元格樣式
- 填充資料
- 寫入資料
- 插入圖片
- 保存檔案
用 xlrd 模塊讀取 Excel
xlrd 安裝
cmd 中輸入pip install xlrd 即可安裝 xlrd 模塊
若失敗請自行百度”python配置環境變數“

xlrd 常用函式
打開,加載作業簿
import xlrd
data = xlrd.open_workbook("data1.xls") # 打開并加載,回傳作業簿物件
print(data.sheet_loaded(0)) # 是否加載完成
data.unload_sheet(0) # 卸載
print(data.sheet_loaded(0))

獲取作業表
import xlrd
data = xlrd.open_workbook("data1.xls") # 打開并加載,回傳作業簿物件
print(data.sheets()) # 獲取全部作業表
print(data.sheets()[0]) # 下標訪問
print(data.sheet_by_name("Sheet1")) # 根據名字獲取作業表 大小寫嚴格!
print(data.sheet_by_index(0)) # 根據下標獲取作業表
print(data.sheet_names()) # 獲取所有作業表的name
print(data.nsheets) # 獲取作業表數量

Excel 行操作與列操作
import xlrd
data = xlrd.open_workbook("data1.xls") # 打開并加載,回傳作業簿物件
# 操作 Excel 行
sheet = data.sheet_by_index(0) # 獲取第一個作業表
print(sheet.nrows) # 獲取作業表行數
print(sheet.row(15)) # 該行單元格物件組成的串列
print(sheet.row_types(15)) # 獲取單元格的資料型別
# type: 0 empty,1 string,2 number, 3 date,4 boolean, 5 error
print(sheet.row(15)[5].value) # 獲取單元格內容
print(sheet.row_values(15)) # 獲取整行單元格內容
print(sheet.row_len(15)) # 獲取單元格長度
# 操作 Excel 列
sheet = data.sheet_by_index(1) # 獲取第一個作業表
print(sheet.ncols) # 獲取作業表列數
print(sheet.col(2)) # 該列單元格物件組成的串列
print(sheet.col_types(15)) # 獲取單元格的資料型別
# type: 0 empty,1 string,2 number, 3 date,4 boolean, 5 error
print(sheet.col(15)[5].value) # 獲取單元格內容
print(sheet.col_values(15)) # 獲取整列單元格內容

Excel 單元格操作
import xlrd
data = xlrd.open_workbook("data1.xls") # 打開并加載,回傳作業簿物件
# 操作 Excel 單元格
sheet = data.sheet_by_index(0)
print(sheet.cell(15, 7)) # 獲取單元格
# 獲取單元格的資料型別
print(sheet.cell_type(15, 7))
print(sheet.cell(15,7).ctype)
# 獲取單元格內容
print(sheet.cell_value(15, 7))
print(sheet.cell(15,7).value)

用 xlwt 模塊寫入 Excel
xlrd 安裝
cmd 中輸入pip install xlwt 即可安裝 xlwt 模塊
創建作業簿并添加作業表
import xlwt
# 創建作業簿
wb = xlwt.Workbook()
# 添加作業表
ws = wb.add_sheet("績點")
調整單元格樣式
# 設定單元格樣式
titlestyle = xlwt.XFStyle() # 初始化樣式
titlefont = xlwt.Font()
titlefont.name = "楷體"
titlefont.bold = True # 加粗
titlefont.height = 11 * 20 # 字號
titlefont.colour_index = 0x08 # 字體顏色
titlestyle.font = titlefont
# 單元格對齊方式
cellalign = xlwt.Alignment()
cellalign.horz = 0x02 # 水平
cellalign.vert = 0x01 # 垂直
titlestyle.alignment = cellalign
# 邊框
borders = xlwt.Borders()
borders.right = xlwt.Borders.DASHED
borders.bottom = xlwt.Borders.DOTTED
titlestyle.borders = borders
# 背景顏色
dataStyle = xlwt.XFStyle()
bgcolor = xlwt.Pattern()
bgcolor.pattern = xlwt.Pattern.SOLID_PATTERN
bgcolor.pattern_fore_colour = 22 # 背景顏色
dataStyle.pattern = bgcolor
填充資料
ws.write_merge(5, 6, 4, 6, "績點", titlestyle) # (x1,y1,x2,y2,內容,樣式)
# (x1,y1)到(x2,y2)之間合并單元格,并以相應樣式填寫內容
寫入資料
data = (("學號", "第一學期", "第二學期"),
("201911040693", 2.971, 2.939),
("201911040694", 2.035, 2.487),
("201911040695", 2.709, 2.099),
("201911040696", 3.374, 3.388),
("201911040697", 2.646, 2.415))
for i, item in enumerate(data):
for j, val in enumerate(item):
ws.write(i + 7, j + 4, val, dataStyle) # (行,列,內容,樣式)
# 填寫資料
插入圖片
ws.insert_bitmap("123.bmp", 20, 21)
保存檔案
wb.save("前兩學期績點統計.xls")
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/259483.html
標籤:python
