python操作xls使用xlwings代提openpyxl基礎(chǔ)
xlwings基礎(chǔ)操作
放棄openpyxl的基礎(chǔ)理由:
- ①不支持xls文件處理;
- ②親測目前版本樣式保存的bug還未解決;
如果遇到上面兩個問題,直接放棄openpyxl,擁抱xlwings吧,沒什么出路;
xlwings文檔在國內(nèi)搜索基本很少,如下是基本的單元格操作;
基本單元格操作
在如下未滿足的情況,可以看下Office操作文檔 ,xlwings可以調(diào)它的api。
# coding=utf-8 import xlwings as xw # 設(shè)置程序不可見運行 app = xw.App(visible=False, add_book=False) # =============== 第一部分,創(chuàng)建并寫入數(shù)據(jù) ===================== # 創(chuàng)建一個test2.xlsx表,并寫入數(shù)據(jù) # 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'] # 獲取總行數(shù)(存在數(shù)據(jù)) 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列(這里處理的不是很好,其實是增加了對應(yīng)區(qū)域的單元格,并未直接增加列) # 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) # 返回和設(shè)置當前格子的高度和寬度 print(rng.width) print(rng.height) rng.row_height=40 rng.column_width=50 # 指定單元格的高度和寬度自適應(yīng) # 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連續(xù)兩個列的值讀取到列表中 # 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))#合并起來然后轉(zhuǎn)為列表 # dicta=dict(lst3)#列表轉(zhuǎn)為字典 # ============== 第七部分,Office操作文檔 ======================== # https://docs.microsoft.com/en-us/office/vba/api/excel.range(object) load_wb.save() load_wb.close() app.quit()
以上就是python操作xls使用xlwings代提openpyxl示例的詳細內(nèi)容,更多關(guān)于python xlwings操作xls的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python3實現(xiàn)ftp服務(wù)功能(服務(wù)端 For Linux)
這篇文章主要介紹了python3實現(xiàn)ftp服務(wù)功能,服務(wù)端 For Linux,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03基于Python實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng)
為了方便的實現(xiàn)記錄數(shù)據(jù)、修改數(shù)據(jù)沒有精力去做一個完整的系統(tǒng)去管理數(shù)據(jù)。因此,在python的控制臺直接實現(xiàn)一個簡易的數(shù)據(jù)管理系統(tǒng),包括數(shù)據(jù)的增刪改查等等。感興趣的可以跟隨小編一起學習一下2021-12-12Python開發(fā)之迭代器&生成器的實戰(zhàn)案例分享
在 Python 中,迭代器和生成器都是用來遍歷數(shù)據(jù)集合的工具,可以按需逐個生成或返回數(shù)據(jù),從而避免一次性加載整個數(shù)據(jù)集合所帶來的性能問題和內(nèi)存消耗問題。本文主要和大家分享幾個貼近實際運維開發(fā)工作中的場景案例,希望對大家有所幫助2023-04-04python統(tǒng)計字符串中字母出現(xiàn)次數(shù)代碼實例
這篇文章主要介紹了python統(tǒng)計字符串中字母出現(xiàn)次數(shù)代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-03-03Python環(huán)境搭建以及Python與PyCharm安裝詳細圖文教程
PyCharm是一種PythonIDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時提高其效率的工具,這篇文章主要給大家介紹了關(guān)于Python環(huán)境搭建以及Python與PyCharm安裝的詳細圖文教程,需要的朋友可以參考下2024-03-03詳解django的serializer序列化model幾種方法
序列化是將對象狀態(tài)轉(zhuǎn)換為可保持或傳輸?shù)母袷降倪^程。這篇文章主要介紹了詳解django的serializer序列化model幾種方法。具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-10-10