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

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

    • 分享

      openpyxl | Python操作Excel利器

       Four兄 2019-08-25

      Python-openpyxl操作生成Excel

      初識

      安裝

      pip install openpyxl

      邏輯

      一個(gè)excel文檔就是一個(gè)工作簿 Workbook,每個(gè)工作簿對應(yīng)可以有很多個(gè)表格sheet,每個(gè)表格頁,由單元格組成。openpyxl通過操作這三個(gè)層級,完成對excel的操作。

      工作簿:

      表格頁:

      單元格:

      基本用法

      創(chuàng)建工作簿 Workbook

      from openpyxl import Workbook

      #創(chuàng)建一個(gè)工作簿對象
      workbook = Workbook()
      #保存這個(gè)工作簿,命名為test
      workbook.save('test.xlsx')

      打開現(xiàn)有工作簿

      from openpyxl  import load_workbook
      #打開當(dāng)前路徑下的test表格
      workbook = load_workbook('test.xlsx')

      創(chuàng)建表

      from openpyxl import load_workbook
      #打開當(dāng)前路徑下的test表格
      workbook = load_workbook('test.xlsx')
      #創(chuàng)建一個(gè)名字叫sheet的表格
      sheet = wb.create_sheet('test.xlsx')
      #任何操作都需要保存
      workbook.save('test.xlsx')

      選擇現(xiàn)有的表

      from openpyxl  import load_workbook
      #打開當(dāng)前路徑下的test表格
      workbook = load_workbook('test.xlsx')
      #選擇名字為first_sheet的表格頁
      sheet = workbook['first_sheet']

      刪除表

      from openpyxl import load_workbook
      #打開當(dāng)前路徑下的test表格
      workbook = load_workbook('test.xlsx')
      #選擇名字為first_sheet的表格頁
      sheet = workbook['first_sheet']
      #刪除這張表
      workbook.remove(sheet)

      訪問單元格

      #方法1
      cell1 = sheet['A1']
      #方法2
      cell2 = sheet.cell(row=1,column=2)

      #設(shè)置單元格的值
      cell1.value = '123456'

      #合并A1和A2單元格
      sheet.merge_cells('A1:A2')

      高級用法

      設(shè)置表格樣式

      先設(shè)置表格的樣式模板

      再將模板賦予需要更改樣式的單元格

      from openpyxl.styles import *

      #先設(shè)置表格的樣式模板,再將模板賦予需要更改樣式的單元格
      #設(shè)置樣式模板,這里只列舉一部分常用的樣式
      #表格邊緣線的樣式,thin表示有框線,框線顏色為黑色
      thin = Side(border_style='thin', color='000000')
      #設(shè)置表格上下左右都有黑色框線樣式
      all_border = Border(top=thin, left=thin, right=thin, bottom=thin)
      #設(shè)置字體樣式,設(shè)置字體為 微軟雅黑,單下劃線,顏色為藍(lán)色,字體加粗
      yahei_font_u = Font(name=u'微軟雅黑',underline='single',color='0000FF',bold=True)
      #設(shè)置背景顏色,設(shè)置充滿方式為充滿,顏色為黃色
      yellow_fill = PatternFill(fill_type='solid',fgColor='FFD700')
      #設(shè)置字體在表格中的位置,設(shè)置字體為上下區(qū)中,字符長度超過表格寬度時(shí)自動換行
      alignment_wrap_content = Alignment(wrap_text=True,horizontal='center',vertical='center')

      #設(shè)置完成后,改變單元格樣式,這樣這個(gè)單元格的樣式就更改為模板的樣式了
      cell = sheet.row(row=1,column=2)
      cell.fill = self.yellow_fill
      cell.font = self.yahei_font_u
      cell.border = self.all_border
      cell.alignment = self.alignment_wrap_content

      #如果要設(shè)置的單元格為合并后的,那么多個(gè)單元格樣式都要設(shè)置

      隱藏和折疊

      #隱藏第二行
      sheet.row_dimensions[2].hidden=1
      #折疊第2行到第5行
      sheet.row_dimensions.group(2,5,hidden=True)

      設(shè)置超鏈接

      #設(shè)置這個(gè)單元格的超鏈接為 跳轉(zhuǎn)到 test工作簿 Sheet表格的 A1單元格
      cell.hyperlink = 'test.xlsx#Sheet!A1'

      實(shí)戰(zhàn)

      原始數(shù)據(jù)

      轉(zhuǎn)換效果

      from openpyxl import *
      from openpyxl.styles import *

      class MakeExcel():

      def __init__(self):
      self.dict = {
      '英雄聯(lián)盟': 'https://lol.qq.com/main.shtml',
      '地下城與勇士': 'https://dnf.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '使命召喚Online': 'https://codol.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '疾風(fēng)之刃': 'https://jf.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '冒險(xiǎn)島2':'https://mxd2.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '天涯明月刀':'https://wuxia.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '御龍?jiān)谔?: 'https://yl.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '劍靈': 'https://bns.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '流放之路': 'https://poe.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '軒轅傳奇2': 'https://xy2.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      '斗戰(zhàn)神': 'https://dzs.qq.com/?ADTAG=media.innerenter.gamecom.navigation',
      'QQ三國': 'https://sg.qq.com/web201706/index.shtml?ADTAG=media.innerenter.gamecom.navigation',
      }
      self.excel_template()
      self.make()

      #表格樣式模板
      def excel_template(self):

      # 表格邊緣線的樣式,thin表示有框線,框線顏色為黑色
      self.thin = Side(border_style='thin', color='000000')

      # 設(shè)置表格上下左右都有黑色框線樣式
      self.all_border = Border(top=self.thin, left=self.thin, right=self.thin, bottom=self.thin)

      # 設(shè)置普通字體樣式
      self.yahei_normal = Font(name=u'微軟雅黑')

      #設(shè)置標(biāo)題字體樣式
      self.yahei_title = Font(name=u'微軟雅黑',bold=True)

      # 設(shè)置鏈接字體樣式,設(shè)置字體為 微軟雅黑,單下劃線,顏色為藍(lán)色
      self.yahei_u = Font(name=u'微軟雅黑', underline='single', color='0000FF')

      # 設(shè)置背景顏色,設(shè)置充滿方式為充滿,顏色為黃色
      self.yellow_fill = PatternFill(fill_type='solid', fgColor='FFD700')

      # 設(shè)置字體在表格中的位置,設(shè)置字體為上下區(qū)中,字符長度超過表格寬度時(shí)自動換行
      self.alignment_wrap = Alignment(wrap_text=True, horizontal='center', vertical='center')

      #設(shè)置表格樣式,根據(jù)傳入的樣式設(shè)置傳入的單元格對象的樣式
      def make_cell_style(self,cell,style):

      #普通單元格樣式
      if style == 'normal':
      cell.font = self.yahei_normal
      cell.border = self.all_border
      cell.alignment = self.alignment_wrap
      #標(biāo)題單元格樣式
      elif style == 'title':
      cell.fill = self.yellow_fill
      cell.font = self.yahei_title
      cell.border = self.all_border
      cell.alignment = self.alignment_wrap
      #地址單元格樣式
      elif style == 'addr':
      cell.font = self.yahei_u
      cell.border = self.all_border
      cell.alignment = self.alignment_wrap

      #生成表格
      def make(self):
      #創(chuàng)建一個(gè)工作簿,選用Sheet這張表
      workbook = Workbook()
      sheet = workbook['Sheet']

      #設(shè)置標(biāo)題的名稱
      cell1 = sheet['A1']
      cell2 = sheet['B1']
      cell1.value = '名稱'
      cell2.value = '地址'

      #設(shè)置列框
      sheet.column_dimensions['A'].width = 20.0
      sheet.column_dimensions['B'].width = 100.0

      #設(shè)置標(biāo)題樣式
      self.make_cell_style(cell1, 'title')
      self.make_cell_style(cell2, 'title')

      #設(shè)置游戲和地址的樣式
      cur_row = 2
      for key in self.dict.keys():

      #設(shè)置名稱和地址的值
      temp_cell_A = sheet.cell(row=cur_row, column=1)
      temp_cell_B = sheet.cell(row=cur_row, column=2)
      temp_cell_A.value = key
      temp_cell_B.value = self.dict[key]
      #設(shè)置地址超鏈接
      temp_cell_B.hyperlink = self.dict[key]
      #設(shè)置名稱和地址的樣式
      self.make_cell_style(temp_cell_A, 'normal')
      self.make_cell_style(temp_cell_B, 'addr')
      cur_row = cur_row + 1

      #從第六行開始折疊
      sheet.row_dimensions.group(6, cur_row, hidden=True)

      workbook.save('游戲.xlsx')

      MakeExcel()

        本站是提供個(gè)人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多