<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python實現(xiàn)數(shù)據(jù)寫入 Excel 的三種模塊!

          共 1932字,需瀏覽 4分鐘

           ·

          2020-10-16 08:54




          本文說明如何使用 xlsxwriterpandasopenpyxl 三個庫來實現(xiàn)數(shù)據(jù)寫入 Excel,寫入后的格式如下圖所示:

          以下為數(shù)據(jù)用例:

          import?xlsxwriter?as?xw
          import?pandas?as?pd
          import?openpyxl?as?op

          "-------------數(shù)據(jù)用例-------------"
          orderIds?=?[1,2,3]
          items?=?['A','B','C']
          myData?=?[10,20,30]
          testData?=?[orderIds,items,myData]
          filename1?=?'測試1.xlsx'
          filename2?=?'測試2.xlsx'
          filename3?=?'測試3.xlsx'

          "--------------執(zhí)行----------------"
          xw_toexcel(testData,filename1)
          pd_toexcel(testData,filename2)
          op_toexcel(testData,filename3)

          下面開始分別介紹三種方法:

          1、xlsxwriter

          def?xw_toexcel(data,filename):?#?xlsxwriter庫儲存數(shù)據(jù)到excel
          ????workbook?=?xw.Workbook(filename)?#?創(chuàng)建工作簿
          ????worksheet1?=?workbook.add_worksheet("sheet1")?#?創(chuàng)建子表
          ????worksheet1.activate()?#?激活表
          ????title?=?['序號','項目','數(shù)據(jù)']?#?設(shè)置表頭
          ????worksheet1.write_row('A1',title)?#?從A1單元格開始寫入表頭
          ????i?=?2?#?從第二行開始寫入數(shù)據(jù)
          ????for?j?in?range(len(data)):
          ????????insertData?=?[data[0][j],data[1][j],data[2][j]]
          ????????row?=?'A'?+?str(i)
          ????????worksheet1.write_row(row,?insertData)
          ????????i?+=?1
          ????workbook.close()?#?關(guān)閉表

          2、pandas

          def?pd_toexcel(data,filename):?#?pandas庫儲存數(shù)據(jù)到excel
          ????dfData?=?{?#?用字典設(shè)置DataFrame所需數(shù)據(jù)
          ????????'序號':data[0],
          ????????'項目':data[1],
          ????????'數(shù)據(jù)':data[2]
          ????}
          ????df?=?pd.DataFrame(dfData)?#?創(chuàng)建DataFrame
          ????df.to_excel(filename,index=False)?#?存表,去除原始索引列(0,1,2...)

          3、openpyxl

          def?op_toexcel(data,filename):?#?openpyxl庫儲存數(shù)據(jù)到excel
          ????wb?=?op.Workbook()?#?創(chuàng)建工作簿對象
          ????ws?=?wb['Sheet']?#?創(chuàng)建子表
          ????ws.append(['序號','項目','數(shù)據(jù)'])?#?添加表頭
          ????for?i?in?range(len(data[0])):
          ????????d?=?data[0][i],?data[1][i],?data[2][i]
          ????????ws.append(d)?#?每次寫入一行
          ????wb.save(filename)

          小結(jié)

          openpyxl 與 xlsxwriter 類似,需要逐行寫入,如第一行需要得到 [ 1, ‘A’ , 10 ] 的格式,但不同的是使用 openpyxl.load_workbook(filepath) 可以對已存在的 .xlsx 進行追加數(shù)據(jù),不會覆蓋;pandas 則需先按列組合,如 [[ 1,2,3],['A','B','C'],[…]]的格式。

          方法各有好處,寫表時應(yīng)根據(jù)需要選用。

          本文完整源碼下載:

          https://alltodata.cowtransfer.com/s/067cecabd5004b

          戀習(xí)Python

          關(guān)注戀習(xí)Python,Python都好練


          好文章,我在看??

          瀏覽 46
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色偷偷免费视频 | 日韩精品人妻成人免费视频 | 91精品国产91久久久久久久久久 | 成人毛片女人毛片免费96 | 国产内射一级毛片农民工 |