在以下未知足的狀況,能夠看下Office操做文檔 ,xlwings能夠調它的api。api
# coding=utf-8 import xlwings as xw # 設置程序不可見運行 app = xw.App(visible=False, add_book=False) # =============== 第一部分,建立並寫入數據 ===================== # 建立一個test2.xlsx表,並寫入數據 # wb = app.books.add() # ws = wb.sheets.active # arr = [] # for col in range(1,4): # arr_temp = [] # for row in range(1,4): # arr_temp.append(col*10+row) # arr.append(arr_temp) # ws.range('A1:B3').value=arr # wb.save('data/test2.xlsx') # wb.close() # app.quit() # exit() # ============== 第二部分,插入、刪除行和列 ======================== # 導入已存的demo表格 load_wb = app.books.open('data/test2.xlsx') # # 打開活動的工做薄的活動工做簿,或者指定的工做簿 load_ws = load_wb.sheets.active # load_ws = load_wb.sheets['Sheet'] # 獲取總行數(存在數據) rows = load_ws.api.UsedRange.Rows.count cols = load_ws.api.UsedRange.Columns.count # print('該表格總共有:'+str(rows)+' 行') # print('該表格總共有:'+str(cols)+' 列') # exit() # 1-①在第二行前插入2行(可理解爲: 在第2-4行插入空白行) # load_ws.api.rows('2:4').insert # 1-②刪除第2-4行 # load_ws.api.rows('2:4').delete # 2-①在第二列前插入2列(這裏處理的不是很好,實際上是增長了對應區域的單元格,並未直接增長列) # load_ws.range('B1:C'+str(cols)).api.insert # 2-②刪除第2-4列 # load_ws.range('B1:C'+str(cols)).api.delete # ============== 第三部分,修改指定單元格的值 ======================== # load_ws.range('A1').value = 'x11' # ============== 第四部分,合併單元格 ======================== # load_ws.range('A1:A2').api.merge # ============== 第五部分,獲取單元格橫縱座標index ======================== rng=xw.Range('B2') # 返回當前格子的行值 # print(rng.row) # 返回當前格子的列值 # print(rng.column) # 返回和設置當前格子的高度和寬度 print(rng.width) print(rng.height) rng.row_height=40 rng.column_width=50 # 指定單元格的高度和寬度自適應 # rng.columns.autofit() rng.rows.autofit() print(rng.width) print(rng.height) # load_ws.range('A1:A2').api.height = 20 # ============== 第六部分,其它 ======================== # lst=load_ws.range('A1:A'+str(load_ws['A1048576'].end('up').row)).value #把excel單列值讀取到列表中 # lst1=load_ws.range('A1:C'+str(load_ws['A1048576'].end('up').row)).value # 把excel連續兩個列的值讀取到列表中 # lst=load_ws.range('A1:A'+str(load_ws['A1048576'].end('up').row)).value #A列的值 # lst2=load_ws.range('C1:C'+str(load_ws['A1048576'].end('up').row)).value#C列的值 # lst3=list(zip(lst,lst2))#合併起來而後轉爲列表 # dicta=dict(lst3)#列表轉爲字典 # ============== 第七部分,Office操做文檔 ======================== # https://docs.microsoft.com/en-us/office/vba/api/excel.range(object) load_wb.save() load_wb.close() app.quit()