openpyxl將工作簿(WorkBook)、工作表(Sheet)、單元格(Cell)作為具體操作Excel的對象。
一、工作簿(加載與保存)
wb = openpyxl.load_workbook(u'明細表.xlsx')#加載工作簿
wb.save(u"明細表(修改).xlsx")#將修改后的工作簿另存為
二、工作表操作
1、獲取當前工作表的名稱
使用active或者get_active_sheet()我們可以獲取當前操作的工作表。
sheetactive = wb.active print sheetactive.title sheetactive = wb.get_active_sheet() print sheetactive.title
2、打開工作表
#打開指定名稱的工作表
sheet1 = wb[u"2月2日"] #方法一
sheet2 = wb.get_sheet_by_name(u"2月2日")#方法二
#打開指定位置的工作表
sheet_names = wb.get_sheet_names() sheet1 = wb.get_sheet_by_name(sheet_names[0])
3、創建工作表
創建工作表需要使用create_sheet()函數。
sheet1 = wb.create_sheet() #默認插在最后
sheet1 = wb.create_sheet( index = 0 ) #插在開頭
sheet1.title = u"新工作表" #修改表名稱
sheet1 = wb.create_sheet( title = u"新工作表", index =0 )#名稱和位置同時指定
#批量生成工作表
i = 0 while(i <= 30): date = i+1 wb.create_sheet( title = u"3月%s號" % date, index = i ) i =i +1
使用remove_sheet()函數可以刪除工作表。
4、刪除工作表
remove_sheet()函數的參數不是工作表的名稱,而是工作表的對象。例如:
wb.remove_sheet(sheet1) wb.remove_sheet(wb[u"2月1日"])
三、單元格
sheet1["A4"]= 25 #找到具體的單元格進行數據輸入。
italic16_Font = Font(size=16, italic=True) #設置字體、大小
sheet['A4'].font = italic24_Font sheet['A4'] = 'Hello world!' sheet['A10'] = '=SUM(A1:A9)' #輸入公式
sheet.row_dimensions[1].height = 70 sheet.column_dimensions['B'].width = 20 #設置行高行寬
sheet.merge_cells('A1:D3') #合並單元格
sheet.unmerge_cells('A1:D3') #拆分單元格
單元格沒有數據時,openpyxl將其表示為none。
注意:
為了防止獲取的數據兩端有看不見的空格,可以使用strip()
其它處理Excel的Python庫
用到再研究吧
xlwings、pandas、win32com、xlsxwriter、DataNitro、xlutils
pandas官方文檔
xlwings官方文檔
