中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

讓Excel效率起飛的Python庫有哪些

發布時間:2021-11-23 09:31:07 來源:億速云 閱讀:205 作者:iii 欄目:大數據

本篇內容主要講解“讓Excel效率起飛的Python庫有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“讓Excel效率起飛的Python庫有哪些”吧!

Xlwings

Xlwings是非常強大的處理Excel的庫,無論是Windows還是Mac,Excel還是WPS,都可以使用。

它功能非常齊全,能十分方便地新建、打開、修改、保存Excel,可以和matplotlib、numpy以及pandas無縫連接,支持讀寫numpy、pandas數據類型,將matplotlib可視化圖表導入到excel中。另外,還可以調用Excel文件中VBA寫好的程序,也可以讓VBA調用Python寫的程序。

import xlwings as xw #導入庫 app = xw.App(visible=True,add_book=False) wb = app.books.add() #打開Excel程序 wb = xw.Book('example.xlsx') #打開已有工作簿 wb.save('example.xlsx') #保存工作簿 wb.close() #退出工作簿(可省略) app.quit() #退出Excel sht = wb.sheets[0] #引用工作表,括號內是第一個sheet名 rng = sht.range('a1') #rng = sht['a1'] #引用單元格,第一行的第一列即a1 rng = sht.range('a1:a5') #引用區域 sht.range('a1').value = 'Hello' #單元格A1,寫入字符串‘Hello’ sht.range('a1').value = [1,2,3,4] #默認按行插入:A1:D4分別寫入1,2,3,4 sht.range('a2').options(transpose=True).value = [5,6,7,8] #按列插入 sht.range('a6').expand('table').value = [['a','b','c'],['d','e','f'],['g','h','i']] #多行輸入 print(sht.range('a1:d4').value) #讀取A1:D4 rng = sht.range('a1').expand('table') nrows = rng.rows.count a = sht.range(f'a1:a{nrows}').value #讀取Excel第一列 ncols = rng.columns.count fst_col = sht[0,:ncols].value #讀取Excel第一行 sht.range('A1').column #獲取單元格列標 sht.range('A1').row #獲取行標 sht.range('A1').column_width #獲取列寬 sht.range('A1').row_height #獲取行高 print(sht.range('A1').column ,sht.range('A1').row ,sht.range('A1').column_width ,sht.range('A1').row_height ) sht.range('A1').rows.autofit() #行高自適應 sht.range('A1').columns.autofit()#列寬自適應 sht.range('A1').color=(34,156,65) #給單元格A1上背景色 sht.range('A1').color #返回單元格顏色的RGB值 print(sht.range('A1').color) sht.range('A1').color = None #清楚單元格顏色 print(sht.range('A1').color) sht.range('A1').formula='=SUM(B6:B7)' #輸入公式,相應單元格執行結果 sht.range('A1').formula_array #獲取單元格公式 sht.range('A1').value=[['a1','a2','a3'],[1,2,3]] #向指定單元格位置寫入批量信息 sht.range('A1').expand().value #使用expand()方法讀取表中批量數據 print(sht.range('A1').expand().value) import numpy as np np_data = np.array((1,2,3)) sht.range('F1').value = np_data #寫入numpy array數據類型 import pandas as pd df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b']) sht.range('A5').value = df #將pandas DataFrame數據類型寫入excel sht.range('A5').options(pd.DataFrame,expand='table').value #將數據讀取,輸出類型為DataFrame import matplotlib.pyplot as plt %matplotlib inline fig = plt.figure() plt.plot([1, 2, 3, 4, 5]) sht.pictures.add(fig, name='MyPlot', update=True) #將matplotlib圖表寫入到excel表格里

xlrd

xlrd主要是讀取Excel,支持xlsx和xls格式的excel表格,可以實現指定表單、指定行列、指定單元格的讀取。

import xlrd #導入庫 data = xlrd.open_workbook(filename) #文件名以及路徑,如果路徑或者文件名有中文給前面加一個r拜師原生字符 # 獲取book中一個工作表 table = data.sheets()[0] #通過索引順序獲取 table = data.sheet_by_index(sheet_indx)) #通過索引順序獲取 table = data.sheet_by_name(sheet_name) #通過名稱獲取 names = data.sheet_names() #返回book中所有工作表的名字 data.sheet_loaded(sheet_name or indx) # 檢查某個sheet是否導入完畢 nrows = table.nrows #獲取該sheet中的有效行數 table.row(rowx) #返回由該行中所有的單元格對象組成的列表 table.row_slice(rowx) #返回由該列中所有的單元格對象組成的列表 table.row_types(rowx, start_colx=0, end_colx=None) #返回由該行中所有單元格的數據類型組成的列表 table.row_values(rowx, start_colx=0, end_colx=None) #返回由該行中所有單元格的數據組成的列表 table.row_len(rowx) #返回該列的有效單元格長度 ncols = table.ncols #獲取列表的有效列數 table.col(colx, start_rowx=0, end_rowx=None) #返回由該列中所有的單元格對象組成的列表 table.col_slice(colx, start_rowx=0, end_rowx=None) #返回由該列中所有的單元格對象組成的列表 table.col_types(colx, start_rowx=0, end_rowx=None) #返回由該列中所有單元格的數據類型組成的列表 table.col_values(colx, start_rowx=0, end_rowx=None) #返回由該列中所有單元格的數據組成的列表 table.cell(rowx,colx) #返回單元格對象 table.cell_type(rowx,colx) #返回單元格中的數據類型 table.cell_value(rowx,colx) #返回單元格中的數據

xlwt

xlwt主要是寫入Excel,可以實現指定表單、指定單元格的寫入,但保存的格式只支持xls格式。

import xlwt #導入模塊 workbook = xlwt.Workbook(encoding='utf-8') #創建workbook 對象 worksheet = workbook.add_sheet('sheet1') #創建工作表sheet worksheet.write(0, 0, 'hello') #往表中寫內容,第一各參數 行,第二個參數列,第三個參數內容 workbook.save('students.xls') #保存表為students.xls # 為內容設置style workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') # 設置字體樣式 font = xlwt.Font() font.name = 'Time New Roman' # 字體 font.bold = True # 加粗 font.underline = True # 下劃線 font.italic = True # 斜體  style = xlwt.XFStyle() style.font = font # 創建style worksheet.write(0, 1, 'world', style) workbook.save('students.xls') # 根據樣式創建workbook # 合并單元格 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') # 通過worksheet調用merge()創建合并單元格 # 第一個和第二個參數單表行合并,第三個和第四個參數列合并,  # 合并第0列到第2列的單元格 worksheet.write_merge(0, 0, 0, 2, 'first merge')  # 合并第1行第2行第一列的單元格 worksheet.write_merge(0, 1, 0, 0, 'first merge')  workbook.save('students.xls') # 設置單元格的對齊方式 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') alignment = xlwt.Alignment() alignment.horz = xlwt.Alignment.HORZ_CENTER # 水平居中 alignment.vert = xlwt.Alignment.VERT_CENTER # 垂直居中 style = xlwt.XFStyle() style.alignment = alignment worksheet.col(0).width = 6666 # 設置單元格寬度 worksheet.row(0).height_mismatch = True worksheet.row(0).height = 1000 # 設置單元格的高度 worksheet.write(0, 0, 'hello world', style) workbook.save('center.xls') # 設置單元格邊框 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1')  border = xlwt.Borders() # DASHED虛線 # NO_LINE沒有 # THIN實線 border.left = xlwt.Borders.THIN border.right = xlwt.Borders.THIN border.top = xlwt.Borders.THIN border.bottom = xlwt.Borders.THIN  style = xlwt.XFStyle() style.borders = border worksheet.write(1, 1, 'love', style)  workbook.save('dashed.xls') # 設置單元格背景色 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1') pattern = xlwt.Pattern() pattern.pattern = xlwt.Pattern.SOLID_PATTERN pattern.pattern_fore_colour = 3 style = xlwt.XFStyle() style.pattern = pattern worksheet.write(1, 1, 'shit', style) workbook.save('shit.xls') # 設置字體顏色 workbook = xlwt.Workbook(encoding='utf-8') worksheet = workbook.add_sheet('sheet1')  font = xlwt.Font() # 設置字體為紅色 font.colour_index=xlwt.Style.colour_map['red']  style = xlwt.XFStyle()  style.font = font  worksheet.write(0, 1, 'world', style) workbook.save('students.xls')

XlsxWriter

XlsxWriter可以用來寫文本、數字、公式并支持單元格格式化、圖片、圖表、文檔配置、自動過濾等特性,不過缺點也很明顯,不能用來讀取和修改Excel文件。

import xlsxwriter # 導入庫 work_book = xlsxwriter.Workbook('my first.xlsx') # 創建一個excel文件,文件名為"my first.xlsx" work_sheet1 = work_book.add_worksheet() # 添加shhet1 work_sheet2 = work_book.add_worksheet('my excel.xlsx') # 添加sheet名字為my excel.xlsx work_sheet3 = work_book.add_worksheet() # 不加參數,默認添加sheet3 # write_number:寫入數字 # write_blank:寫入空格 # write_formula:寫入公式 # write_datetime:寫入時間格式 # write_boolean:寫入邏輯數據 # write_url:寫入鏈接地址 work_sheet2.write_string(0, 0, 'this is write string!') work_sheet2.write_number('A2', 123456) work_sheet2.write_blank('A3', None) work_sheet2.write_number('B1', 12) work_sheet2.write_number('B2', 24) work_sheet2.write_number('B3', 35) work_sheet2.write_formula('B7', '=sum(b1:b5)') work_sheet2.write_datetime(0, 3, datetime.datetime.strptime('2019-04-18', '%Y-%m-%d'), work_book.add_format({'num_format': 'yyyy-mm-dd'})) work_sheet1.write_boolean(0, 0, True) work_sheet1.write_url('A2', 'http://www.toutiao.com')

openpyxl

openpyxl 是比較火的操作excel表格的Python庫,只支持03版本之后的 xlsx。

# 創建工作簿 Workbook from openpyxl import Workbook workbook = Workbook() # 創建一個工作簿對象 workbook.save('test.xlsx') # 保存這個工作簿,命名為test # 打開已有工作簿 from openpyxl import load_workbook workbook = load_workbook('test.xlsx') # #打開當前路徑下的test表格 # 創建表 # 方法1:插入到最后(default) ws1 = wb.create_sheet("Mysheet") # 方法2:插入到最開始的位置 ws2 = wb.create_sheet("Mysheet", 0) # 選擇現有的表 from openpyxl import load_workbook workbook = load_workbook('test.xlsx') # 打開當前路徑下的test表格 sheet = workbook['first_sheet'] # 選擇名字為first_sheet的表格頁 # 刪除表 from openpyxl import load_workbook workbook = load_workbook('test.xlsx') # 打開當前路徑下的test表格 sheet = workbook['first_sheet'] # 選擇名字為first_sheet的表格頁 workbook.remove(sheet) #刪除這張表 # 訪問單元格 # 方法1 cell1 = sheet['A1'] # 方法2 cell2 = sheet.cell(row=1,column=2) cell1.value = '123456' # 設置單元格的值 sheet.merge_cells('A1:A2') #合并A1和A2單元格

到此,相信大家對“讓Excel效率起飛的Python庫有哪些”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

合川市| 昔阳县| 神农架林区| 崇义县| 瑞昌市| 兰坪| 阳西县| 清水河县| 沂源县| 化州市| 崇信县| 台中市| 古交市| 漳州市| 和龙市| 辽中县| 海淀区| 沙湾县| 苍梧县| 汾阳市| 澎湖县| 会昌县| 中超| 阳新县| 达日县| 广州市| 玉溪市| 龙井市| 米易县| 旅游| 芜湖市| 汤阴县| 区。| 五寨县| 东方市| 正安县| 湟源县| 陇南市| 夏河县| 银川市| 江门市|