乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      Python操作Excel 模塊,你猜哪家強?

       西北望msm66g9f 2020-01-08

      本文授權轉載自清風學Python
      禁止二次轉載

      大家好,我是老表

      閱讀文本大概需要 10 分鐘

      python操作excel的模塊簡直不要太多,

      今天就為大家比較下各模塊之間的優(yōu)缺點。

        

      xlutils & xlrd & xlwt   

      最原始的莫過于兩位老牌黃金搭檔xlrd xlwt了,針對二者的封裝有如下模塊:

      模塊官網

      xlutils

      https:///project/xlutils/

      xlrd

      https:///project/xlrd/

      xlwt

      https:///project/xlwt/

      為什么把這三個一起說?
      首先,xlutils封裝了xlrd xlwt,所以在使用前,會先下載這兩個依賴的模塊。
      其次,這兩個模塊主要用于處理xls文件,而對xlsx的文件處理很挫,甚至xlwt不支持…
      但為何到現在依然在使用這些模塊,因為他對xls文檔處理的優(yōu)勢….

      win32com & DataNitro

      模塊官網
      win32comhttp:///python-excel-mini-cookbook/
      DataNitrohttps:///

      這兩個模塊又是怎么一回事兒?他倆僅支持windows系統(tǒng)環(huán)境
      win32com這個模塊大家不算陌生了,windows下的操作,哪兒他都能插一腿…至于使用,就點擊鏈接自己看吧…
      至于DataNitro,本來不想說的,但畢竟很多帖子都提到了它,我不寫不太好,但大家知道他是一個Excel 的插件,安裝也需單獨到官網下載即可….

      pandas

      模塊官網
      pandashttps://www./

      pandas作為數據分析利器,在處理excel方面也是犀利的一腿….

      import  pandas  as pd
      #方法一:默認讀取第一個表單
      df=pd.read_excel('lemon.xlsx')#這個會直接默認讀取到這個Excel的第一個表單
      data=df.head()#默認讀取前5行的數據
      print('獲取到所有的值:\n{0}'.format(data))#格式化輸出

      #方法二:通過指定表單名的方式來讀取
      df=pd.read_excel('lemon.xlsx',sheet_name='student')#可以通過sheet_name來指定讀取的表單
      data=df.head()#默認讀取前5行的數據
      print('獲取到所有的值:\n{0}'.format(data))#格式化輸出

      #方法三:通過表單索引來指定要訪問的表單,0表示第一個表單
      #也可以采用表單名和索引的雙重方式來定位表單
      #也可以同時定位多個表單,方式都羅列如下所示
      df=pd.read_excel('lemon.xlsx',sheet_name=['python','student'])#可以通過表單名同時指定多個
      # df=pd.read_excel('lemon.xlsx',sheet_name=0)#可以通過表單索引來指定讀取的表單
      # df=pd.read_excel('lemon.xlsx',sheet_name=['python',1])#可以混合的方式來指定
      # df=pd.read_excel('lemon.xlsx',sheet_name=[1,2])#可以通過索引 同時指定多個
      data=df.values#獲取所有的數據,注意這里不能用head()方法哦~
      print('獲取到所有的值:\n{0}'.format(data))#格式化輸出

      xlsxwriter

      模塊官網
      xlsxwriterhttps://xlsxwriter./

      xlsxwriter擁有豐富的特性,支持圖片/表格/圖表/篩選/格式/公式等,功能與openpyxl相似,優(yōu)點是相比 openpyxl 還支持 VBA 文件導入,迷你圖等功能,缺點是不能打開/修改已有文件,意味著使用 xlsxwriter 需要從零開始。
      代碼示例:

      import xlsxwriter

      # Create a workbook and add a worksheet.
      workbook = xlsxwriter.Workbook('Expenses01.xlsx')
      worksheet = workbook.add_worksheet()

      # Some data we want to write to the worksheet.
      expenses = (
          ['Rent', 1000],
          ['Gas',   100],
          ['Food',  300],
          ['Gym',    50],
      )

      # Start from the first cell. Rows and columns are zero indexed.
      row = 0
      col = 0

      # Iterate over the data and write it out row by row.
      for item, cost in (expenses):
          worksheet.write(row, col,     item)
          worksheet.write(row, col + 1, cost)
          row += 1

      # Write a total using a formula.
      worksheet.write(row, 0, 'Total')
      worksheet.write(row, 1, '=SUM(B1:B4)')

      workbook.close()

      xlwings

      模塊官網
      xlwingshttp://docs./en/stable/

      xlwings簡單強大,使用方便。而且搞笑的是,這是為數不多的模塊開發(fā)者,在平臺賣課的,哈哈….

      image.png
      import xlwings as xw

      #連接到excel
      workbook = xw.Book(r'path/myexcel.xlsx')#連接excel文件
      #連接到指定單元格
      data_range = workbook.sheets('Sheet1').range('A1')
      #寫入數據
      data_range.value = [1,2,3]
      #保存
      workbook.save()

      openpyxl

      模塊官網
      openpyxlhttps://openpyxl./en/latest/

      最后要說說個人比較常用,也很方便的一個excel處理模塊openpyxl….這個模塊突出的優(yōu)勢在于,對excel單元格樣式的設置方面特別詳細。所以針對openpyxl,詳細的介紹一下.

      • 寫一個工作簿

      >>> from openpyxl import Workbook
      >>> from openpyxl.utils import get_column_letter
      >>>
      >>> wb = Workbook()
      >>>
      >>> dest_filename = 'empty_book.xlsx'
      >>>
      >>> ws1 = wb.active
      >>> ws1.title = 'range names'
      >>>
      >>> for row in range(1, 40):
      ...     ws1.append(range(600))
      >>>
      >>> ws2 = wb.create_sheet(title='Pi')
      >>>
      >>> ws2['F5'] = 3.14
      >>>
      >>> ws3 = wb.create_sheet(title='Data')
      >>> for row in range(10, 20):
      ...     for col in range(27, 54):
      ...         _ = ws3.cell(column=col, row=row, value='{0}'.format(get_column_letter(col)))
      >>> print(ws3['AA10'].value)
      AA
      >>> wb.save(filename = dest_filename)
      • 讀取現有工作簿

      >>> from openpyxl import load_workbook
      >>> wb = load_workbook(filename = 'empty_book.xlsx')
      >>> sheet_ranges = wb['range names']
      >>> print(sheet_ranges['D18'].value)
      3
      • 插入圖像 (需要依賴pillow..)

      >>> from openpyxl import Workbook
      >>> from openpyxl.drawing.image import Image
      >>>
      >>> wb = Workbook()
      >>> ws = wb.active
      >>> ws['A1'] = 'You should see three logos below'
      >>> # create an image
      >>> img = Image('logo.png')
      >>> # add to worksheet and anchor next to cells
      >>> ws.add_image(img, 'A1')
      >>> wb.save('logo.xlsx')
      • 使用樣式
        樣式用于在屏幕上顯示時更改數據的外觀。它們還用于確定數字的格式。
        樣式可以應用于以下方面:

      • 字體設置字體大小,顏色,下劃線等

      • 填充以設置圖案或顏色漸變

      • 邊框設置單元格上的邊框

      • 單元格排列

      • 保護

      以下是默認值

      >>> from openpyxl.styles import PatternFill, Border, Side, Alignment, Protection, Font
      >>> font = Font(name='Calibri',
      ...                 size=11,
      ...                 bold=False,
      ...                 italic=False,
      ...                 vertAlign=None,
      ...                 underline='none',
      ...                 strike=False,
      ...                 color='FF000000')
      >>> fill = PatternFill(fill_type=None,
      ...                 start_color='FFFFFFFF',
      ...                 end_color='FF000000')
      >>> border = Border(left=Side(border_style=None,
      ...                           color='FF000000'),
      ...                 right=Side(border_style=None,
      ...                            color='FF000000'),
      ...                 top=Side(border_style=None,
      ...                          color='FF000000'),
      ...                 bottom=Side(border_style=None,
      ...                             color='FF000000'),
      ...                 diagonal=Side(border_style=None,
      ...                               color='FF000000'),
      ...                 diagonal_direction=0,
      ...                 outline=Side(border_style=None,
      ...                              color='FF000000'),
      ...                 vertical=Side(border_style=None,
      ...                               color='FF000000'),
      ...                 horizontal=Side(border_style=None,
      ...                                color='FF000000')
      ...                )
      >>> alignment=Alignment(horizontal='general',
      ...                     vertical='bottom',
      ...                     text_rotation=0,
      ...                     wrap_text=False,
      ...                     shrink_to_fit=False,
      ...                     indent=0)
      >>> number_format = 'General'
      >>> protection = Protection(locked=True,
      ...                         hidden=False)
      >>>



        本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯系方式、誘導購買等信息,謹防詐騙。如發(fā)現有害或侵權內容,請點擊一鍵舉報。
        轉藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多