Python實現數據寫入 Excel 的三種模塊!


本文說明如何使用 xlsxwriterpandasopenpyxl 三個庫來實現數據寫入 Excel,寫入后的格式如下圖所示:

以下為數據用例:

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

"-------------數據用例-------------"
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'

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

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

這里多說一句,小編是一名python開發工程師,這里有我自己整理了一套最新的python系統學習教程,包括從基礎的python腳本到web開發、爬蟲、數據分析、數據可視化、機器學習等。想要這些資料的可以進裙609616831領取。

1、xlsxwriter

def xw_toexcel(data,filename): # xlsxwriter庫儲存數據到excel
    workbook = xw.Workbook(filename) # 創建工作簿
    worksheet1 = workbook.add_worksheet("sheet1") # 創建子表
    worksheet1.activate() # 激活表
    title = ['序號','項目','數據'] # 設置表頭
    worksheet1.write_row('A1',title) # 從A1單元格開始寫入表頭
    i = 2 # 從第二行開始寫入數據
    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() # 關閉表

2、pandas

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

3、openpyxl

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

小結

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

方法各有好處,寫表時應根據需要選用。如果大家在學習中遇到困難,想找一個python學習交流環境,可以加入我們的python圈,裙號609616831,可領取python學習資料,會節約很多時間,減少很多遇到的難題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM