99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀方便!Python 操作 Excel 神器 xlsxwriter 初識
方便!Python 操作 Excel 神器 xlsxwriter 初識
2021-12-30
收藏

作者:潮汐

來源:Python 技術(shù)

隨著技術(shù)棧的越來越成熟,為了解決重復(fù)的勞動(dòng)力型工作,越來越多的人開始學(xué)習(xí)自動(dòng)化辦公,使用技術(shù)幫助自己高效工作,提升工作效率,今天的文章講解如何使用Python技術(shù)中的神奇工具來協(xié)助咱們自動(dòng)化辦公,這個(gè)神器就是 xlsxwriter。

那什么是 xlsxwriter 呢?

Xlsxwriter 是一個(gè)用于編寫 Excel 文件格式文件的 Python 模塊,xlsxwriter 可以用來寫文本,數(shù)字,公式和超鏈接到多個(gè)工作表,它支持的功能也有很多,譬如格式化、單元格合并、圖標(biāo)功能等,具體功能如下:

方便!Python 操作 Excel 神器 xlsxwriter 初識

02

另外它還支持Python 3.4+和PyPy3,并且只使用標(biāo)準(zhǔn)庫。但值得注意的是它不支持讀或者改現(xiàn)有的excel文件。

xlsxwriter 同樣也使用 pip 安裝,安裝語句如下:pip install xlsxwriter

簡單使用

以下是關(guān)于 xlsxwriter

import xlsxwriter

workbook = xlsxwriter.Workbook('demo.xlsx') # 建立文件 worksheet = workbook.add_worksheet() # 建立sheet, 可以使用work.add_worksheet('employee')來指定sheet名,如果命名中文名會報(bào)UnicodeDecodeErro的錯(cuò)誤 worksheet.write('A1', 'Hello world') # 向A1寫入文字 workbook.close()
方便!Python 操作 Excel 神器 xlsxwriter 初識

03

實(shí)例

下面簡單看一個(gè)實(shí)例,新增一個(gè)表格,再在表格中添加文字、數(shù)據(jù)以及圖片,最后將工作表保存在當(dāng)前工作空間中,詳細(xì)實(shí)例如下:

import xlsxwriter def simple_example(): # 創(chuàng)建一個(gè)新的Excel文件并添加一個(gè)工作表 workbook = xlsxwriter.Workbook('demo.xlsx')
    worksheet = workbook.add_worksheet() # 確定第一欄,使文字更清楚 worksheet.set_column('A:A', 20) # 添加粗體格式以突出顯示單元格 bold = workbook.add_format({'bold': True}) # 簡單的寫一些文字 worksheet.write('A1', 'Hello') # 另起一行寫入文字并加粗 worksheet.write('A2', 'World', bold) # 用行/列表示法寫一些數(shù)字 worksheet.write(2, 0, 123)
    worksheet.write(3, 0, 13.432) # 插入一張圖片. worksheet.insert_image('B5', 'logo.jpeg')

    workbook.close() if __name__ == '__main__':
    simple_example()

實(shí)例結(jié)果圖:

方便!Python 操作 Excel 神器 xlsxwriter 初識

04

表格數(shù)據(jù)求和

下面的實(shí)例講解新建表格添加相應(yīng)數(shù)據(jù)求和。

def sum_data(): workbook = xlsxwriter.Workbook('demo.xlsx') # 建立文件 worksheet = workbook.add_worksheet()
    add_data = (
        ['A1', 1087],
        ['A2', 1056],
        ['A3', 300],
        ['A4', 590],
    ) # 按標(biāo)號寫入是從0開始的,按絕對位置'A1'寫入是從1開始的 row = 0 col = 0 # 遍歷數(shù)據(jù)并逐行寫出它 for item, cost in (add_data):
        worksheet.write(row, col, item)
        worksheet.write(row, col + 1, cost)
        row += 1 # 用公式寫出總數(shù) worksheet.write(row, 0, 'Total')
    worksheet.write(row, 1, '=SUM(B1:B4)') # 調(diào)用excel的公式表達(dá)式 workbook.close()

求和結(jié)果如下:

方便!Python 操作 Excel 神器 xlsxwriter 初識

05

自定義格式

以下實(shí)例講解輸出數(shù)字格式,使用workbook.add_format()函數(shù)進(jìn)行自定義新增和運(yùn)算后的輸出結(jié)果,詳細(xì)步驟如下:

def self_define_format(): # 建文件及sheet. workbook = xlsxwriter.Workbook('demo2.xlsx')
    worksheet = workbook.add_worksheet() # Add a bold format to use to highlight cells. 設(shè)置粗體,默認(rèn)是False bold = workbook.add_format({'bold': True}) # 定義數(shù)字格式 money = workbook.add_format({'num_format': '$#,##0'}) # Write some data headers. 帶自定義粗體blod格式寫表頭 worksheet.write('A1', 'Item', bold)
    worksheet.write('B1', 'Cost', bold) # Some data we want to write to the worksheet. add_data = (
        ['A1', 1087],
        ['A2', 1056],
        ['A3', 300],
        ['A4', 590],
    ) # Start from the first cell below the headers. row = 1 col = 0 # Iterate over the data and write it out row by row. for item, cost in (add_data):
        worksheet.write(row, col, item) # 帶默認(rèn)格式寫入 worksheet.write(row, col + 1, cost, money) # 帶自定義money格式寫入 row += 1 # Write a total using a formula. worksheet.write(row, 0, 'Total', bold)
    worksheet.write(row, 1, '=SUM(B2:B5)', money)

    workbook.close()

輸出結(jié)果如下:

方便!Python 操作 Excel 神器 xlsxwriter 初識

06

寫入日期格式

在單元格輸出結(jié)果中加入日期格式:

def write_date(): from datetime import datetime
    workbook = xlsxwriter.Workbook('demo3.xlsx')
    worksheet = workbook.add_worksheet() # 添加粗體格式以突出顯示單元格. bold = workbook.add_format({'bold': 1}) # 為帶錢的單元格添加數(shù)字格式. money_format = workbook.add_format({'num_format': '$#,##0'}) # 添加Excel日期格式. date_format = workbook.add_format({'num_format': 'mmmm d yyyy'}) # 調(diào)整列的寬度 worksheet.set_column(1, 1, 15) # 寫入數(shù)據(jù)表頭 worksheet.write('A1', 'Item', bold)
    worksheet.write('B1', 'Date', bold)
    worksheet.write('C1', 'Cost', bold) # 將數(shù)據(jù)寫入工作表 add_data = (
        ['A1', '2013-01-13', 1875],
        ['A2', '2013-01-14', 345],
        ['A3', '2013-01-16', 564],
        ['A4', '2013-01-20', 10987],
    ) # 從標(biāo)題下面的第一個(gè)單元格開始. row = 1 col = 0 for item, date_str, cost in (add_data): # 將日期字符串轉(zhuǎn)換為datetime對象 date = datetime.strptime(date_str, "%Y-%m-%d")

        worksheet.write_string(row, col, item)
        worksheet.write_datetime(row, col + 1, date, date_format)
        worksheet.write_number(row, col + 2, cost, money_format)
        row += 1 # 用公式寫出總數(shù) worksheet.write(row, 0, 'Total', bold)
    worksheet.write(row, 2, '=SUM(C2:C5)', money_format)

    workbook.close()

輸出結(jié)果如下:

方便!Python 操作 Excel 神器 xlsxwriter 初識

07

總結(jié)

今天的文章講解了神器 xlsxwriter 操作 Excel 的基本操作,當(dāng)然還有更多關(guān)于 xlsxwriter 有趣的知識點(diǎn)還未分享,欲知后事如何,下回咱們接著分享,感興趣的朋友們可以試試,希望對大家有所幫助。

數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }