Python寫(xiě)入Excel

  • xlsxwriter
    xlrd:用于讀取 Excel 文件;xlwt:用于寫(xiě)入 Excel 文件;xlutils:用于操作 Excel 文件的實(shí)用工具,比如復(fù)制、分割、篩選等;
    https://xlsxwriter.readthedocs.io/
    寫(xiě)入大.xlsx文件時(shí)使用內(nèi)存優(yōu)化模式。

  • pandas
    http://pandas.pydata.org/
    pandas支持.xls,.xlsx文件的讀寫(xiě)。

  • openpyxl
    openpyxl是一個(gè)用于讀取和編寫(xiě)Excel 2010之后的 xlsx/xlsm/xltx/xltm文件的庫(kù)。
    https://openpyxl.readthedocs.io/en/stable/
    1、加載大.xlsx文件可以使用read_only模式。
    2、寫(xiě)入大.xlsx文件可以使用write_only模式。

類型 xlrd&xlwt&xlutils pandas OpenPyXL
讀取 支持 支持 支持
寫(xiě)入 支持 支持 支持
修改 支持 支持 支持
xls 支持 支持 不支持
xlsx 高版本支持 支持 支持
大文件 不支持 支持 支持
效率
功能 較弱 強(qiáng)大 一般
速度 最快 較快
import xlsxwriter as xw
import pandas as pd
import openpyxl as op

def get_data():
    orderIds = [1, 2, 3]
    items = ['A', 'B', 'C']
    myData = ["風(fēng)犬少年的天空", "重啟", "半澤直樹(shù)"]
    testData = [orderIds, items, myData]
    return testData
    # filename2 = '測(cè)試2.xlsx'
    # filename3 = '測(cè)試3.xlsx'


# xlsxwriter 一行一行寫(xiě)
def xw_toexcel(data, file_name):
    """ 通過(guò) xlsxwriter 方式 """
    # 創(chuàng)建工作簿
    workbook = xw.Workbook(file_name)
    # 創(chuàng)建子表
    worksheet = workbook.add_worksheet("sheet")
    # 激活表
    worksheet.activate()
    # 設(shè)置表頭
    title = ['序號(hào)', '等級(jí)', '名稱']
    # 從A1單元格開(kāi)始寫(xiě)入表頭
    worksheet.write_row('A1', title)
    # 從第二行開(kāi)始寫(xiě)入數(shù)據(jù)
    i = 2
    for j in range(len(data)):
        insertData = [data[0][j], data[1][j], data[2][j]]
        row = 'A' + str(i)
        worksheet.write_row(row, insertData)
        i += 1
    # 關(guān)閉表
    workbook.close()


def pd_toexcel(data, file_name):
    """ pandas方式 """
    # 用字典設(shè)置DataFrame所需數(shù)據(jù)
    dfData = {
        '序號(hào)': data[0],
        '等級(jí)': data[1],
        '名稱': data[2]
    }
    # 創(chuàng)建DataFrame
    df = pd.DataFrame(dfData)
    # 存表,去除原始索引列(0,1,2...)
    df.to_excel(file_name, index=False)


def op_toexcel(data, file_name):
    """ openpyxl方式 """
    # 創(chuàng)建工作簿對(duì)象
    wb = op.Workbook()
    # 創(chuàng)建子表
    ws = wb['Sheet']
    # 添加表頭
    ws.append(['序號(hào)', '等級(jí)', '名稱'])
    for i in range(len(data[0])):
        d = data[0][i], data[1][i], data[2][i]
        # 每次寫(xiě)入一行
        ws.append(d)
    wb.save(file_name)


def main():
    # xw_toexcel(get_data(), '測(cè)試1.xlsx')

    # pd_toexcel(get_data(), '測(cè)試2.xlsx')

    op_toexcel(get_data(), '測(cè)試3.xlsx')


if __name__ == '__main__':
    main()

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容