16.使用讀寫包操作Excel文件:XlsxWriter 包

一?XlsxWriter 的介紹

XlsxWriter 只能寫入 Excel 文件。
OpenPyXL 和?XlsxWriter 的區別在筆記 15 。

二 如何使用?XlsxWriter

1.導包

 import datetime as dtimport xlsxwriterimport excel

2.實例化工作簿

book = xlsxwriter.Workbook("xlxswriter.xlsx")
book.close()

運行后會創建一個空白的 excel 文件。

3.添加工作表并為其命名

sheet = book.add_worksheet("Sheet1")

4.為工作表寫入數據

使用A1表示法和單元格索引 (從0開始)寫入各個單元格。
sheet.write("A1", "Hello 1")
sheet.write(1, 0, "Hello 2")

5.格式化:填充顏色、對齊、邊框和字體

formatting = book.add_format({"font_color": "#FF0000","bg_color": "#FFFF00","bold": True, "align": "center","border": 1, "border_color": "#FF0000"})sheet.write("A3", "Hello 3", formatting)

    font_color": "#FF0000": 設置字體顏色為紅色。

    bg_color": "#FFFF00": 設置單元格的背景顏色為黃色。

    bold": True: 將字體設置為粗體。

    align": "center": 將單元格內容水平居中對齊。

    border": 1: 為單元格添加邊框,寬度為 1。

    border_color": "#FF0000": 設置邊框顏色為紅色。

    6.數字格式化(使用Excel的格式化字符串)

    number_format = book.add_format({"num_format": "0.00"})
    sheet.write("A4", 3.3333, number_format)

    book.add_format({...}): 用于定義單元格的顯示樣式。

    "num_format": "0.00": 設置單元格的數字格式為小數點后保留兩位小數。這意味著無論數字的實際值是多少,它都將在 Excel 中顯示為兩位小數。

    sheet.write("A4", 3.3333, number_format): 這行代碼在 Excel 工作表的單元格?A4?中寫入數字?3.3333,并應用之前定義的?number_format?格式。

    示例:

    具體參考?OpenPyXL 對應章節。

    7.日期格式化(使用Excel的格式化字符串)

    date_format = book.add_format({"num_format": "mm/dd/yy"})
    sheet.write("A5", dt.date(2016, 10, 13), date_format)

    8.索引和標題格式化

    類比?OpenPyXL 中的索引和標題格式化。

    9.在 Excel 工作表的單元格中設置公式

    必須使用以逗號分隔的英文公式名稱。

    sheet.write("A6", "=SUM(A4, 2)")

    10.圖片

    sheet.insert_image(0, 2, "images/python.png")

    11.二維列表(使用excel模塊)

    data = [[None, "North", "South"],["Last Year", 2, 5],["This Year", 3, 6]]
    excel.write(sheet, data, "A10")

    12.圖表

    sales_report_xlsxwriter.py
    https://pan.baidu.com/s/1Gg0ePtKHRK4-q-qBLptL_Q?pwd=hnk6 提取碼: hnk6?
    chart = book.add_chart({"type": "column"})
    chart.set_title({"name": "Sales per Region"})
    chart.add_series({"name": "=Sheet1!A11","categories": "=Sheet1!B10:C10","values": "=Sheet1!B11:C11"})
    chart.add_series({"name": "=Sheet1!A12","categories": "=Sheet1!B10:C10","values": "=Sheet1!B12:C12"})
    chart.set_x_axis({"name": "Regions"})
    chart.set_y_axis({"name": "Sales"})
    sheet.insert_chart("A15", chart)

    chart = book.add_chart({"type": "column"})

    創建一個新的圖表對象,并指定圖表類型為柱狀圖(column)。

    chart.set_title({"name": "Sales per Region"})

    為圖表設置標題,標題內容為 "Sales per Region"。

    chart.add_series({"name": "=Sheet1!A11", "categories": "=Sheet1!B10:C10", "values": "=Sheet1!B11:C11"})
    chart.add_series({"name": "=Sheet1!A12", "categories": "=Sheet1!B10:C10", "values": "=Sheet1!B12:C12"})

    向圖表中添加數據系列。每個數據系列由一個名稱、一個類別范圍和一個值范圍組成。

    "name": "=Sheet1!A11": 指定數據系列的名稱,引用工作表?Sheet1?中的單元格?A11

    "categories": "=Sheet1!B10:C10": 指定數據系列的類別,引用工作表?Sheet1?中的單元格范圍?B10:C10

    "values": "=Sheet1!B11:C11": 指定數據系列的值,引用工作表?Sheet1?中的單元格范圍?B11:C11

    chart.set_x_axis({"name": "Regions"})
    chart.set_y_axis({"name": "Sales"})

    設置坐標軸標簽。

    chart.set_x_axis({"name": "Regions"}): 設置 X 軸的標簽為 "Regions"。

    chart.set_y_axis({"name": "Sales"}): 設置 Y 軸的標簽為 "Sales"。

    sheet.insert_chart("A15", chart)

    將創建的圖表插入到工作表的單元格?A15?中。

    13.關閉工作簿并在磁盤上創建文件

    book.close()

    14..xlsm?格式的文件處理


    三?使用 XlsxWriter 寫入大型文件:逐行寫入?

    XlsxWriter 有一個和 OpenPyXL 類似的選項叫作 constant_memory。它也會強制逐行寫入。

    以字典的形式來傳遞 options 參數。

    book = xlsxwriter.Workbook("xlsxwriter_optimized.xlsx",options={"constant_memory": True})
    sheet = book.add_worksheet()
    # 生成一張包含1000x200個單元格的工作表
    for row in range(1000):sheet.write_row(row , 0, list(range(200)))
    book.close()

    sheet = book.add_worksheet():在工作簿?book中添加一個新的工作表,并將其賦值給變量sheet。默認情況下,新創建的工作表會被命名為"Sheet1"。

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/898209.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/898209.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/898209.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    ChatGPT and Claude國內使用站點

    RawChat kelaode chatgptplus chatopens(4.o mini免費,plus收費) 網頁: 定價: wildcard 網頁: 虛擬卡定價: 2233.ai 網頁: 定價: MaynorAPI chatgpt cla…

    【MySQL】MySQL審計工具Audit Plugin安裝使用

    MySQL審計工具Audit Plugin安裝使用 https://www.cnblogs.com/waynechou/p/mysql_audit.html MySQL 5.6 開啟審計功能 https://blog.51cto.com/u_15127556/4344503 MySQL之添加日志審計功能 https://blog.csdn.net/weixin_43279032/article/details/105507170 MySQL開啟日志記錄…

    QT 磁盤文件 教程04-創建目錄、刪除目錄、遍歷目錄

    【1】新建目錄 bool CreateDir(QString name){QString fileName name ;QDir dir(fileName);if (dir.isEmpty()) {dir.mkdir(fileName);return true;}else{qDebug()<<"文件夾已存在";return false;} } 【2】刪除目錄 bool DeleteDir(QString fileName){if (…

    Git——分布式版本控制工具使用教程

    本文主要介紹兩種版本控制工具——SVN和Git的概念&#xff0c;接著會講到Git的安裝&#xff0c;Git常用的命令&#xff0c;以及怎么在Vscode中使用Git。幫助新手小白快速上手Git。 1. SVN和Git介紹 1.1 SVN 集中式版本控制工具&#xff0c;版本庫是集中存放在中央服務器的&am…

    Vue:添加響應式數據

    Vue&#xff1a;添加響應式數據 1. 什么是響應式&#xff1f; 修改 data 后&#xff0c;頁面自動改變/刷新&#xff0c;這就是響應式。就像我們在使用 Excel 的時候&#xff0c;修改一個單元格中的數據&#xff0c;其它單元格的數據會聯動更新&#xff0c;這也是響應式。在前…

    算法刷題記錄——LeetCode篇(10) [第901~1000題](持續更新)

    (優先整理熱門100及面試150&#xff0c;不定期持續更新&#xff0c;歡迎關注) 994. 腐爛的橘子 在給定的 m x n 網格 grid 中&#xff0c;每個單元格可以有以下三個值之一&#xff1a; 值 0 代表空單元格&#xff1b;值 1 代表新鮮橘子&#xff1b;值 2 代表腐爛的橘子。 每…

    Secs/Gem第二講 (基于secs4net項目的ChatGpt介紹)

    好的&#xff0c;我們正式進入&#xff1a; 第二講&#xff1a;深入 SECS4NET 項目結構——主機程序是怎么搭起來的&#xff1f; 關鍵詞&#xff1a;項目結構、類圖、通信類、事件處理、連接生命周期、異步機制 本講目的 我們從源碼入手&#xff0c;一步步搞懂&#xff1a; S…

    壓測實戰 | 微信小程序商城 “雙 11” 的壓測實踐

    背景 某全球知名珠寶品牌&#xff0c;始終以創新驅動零售變革。隨著全渠道戰略的深化&#xff0c;其小程序官方商城逐漸成為品牌私域流量的核心陣地&#xff0c;不僅承載了線上銷售、會員運營等功能&#xff0c;同時還與其內部系統打通&#xff0c;如會員管理系統、人力資源系…

    垃圾分類--環境配置

    寫在前面&#xff1a; 如果你們打這屆比賽時&#xff0c;還有我們所保留的內存卡&#xff0c;那么插上即可運行&#xff08;因為內存卡里我們已經配置好所有的環境&#xff09; 本文提供兩種環境的配置 一種是基于yolov8&#xff1a;YOLOv8 - Ultralytics YOLO Docshttps://d…

    工具(十二):Java導出MySQL數據庫表結構信息到excel

    一、背景 遇到需求&#xff1a;將指定數據庫表設計&#xff0c;統一導出到一個Excel中&#xff0c;存檔查看。 如果一個一個弄&#xff0c;很復雜&#xff0c;耗時長。 二、寫一個工具導出下 廢話少絮&#xff0c;上碼&#xff1a; 2.1 pom導入 <dependency><grou…

    Postman 新手入門指南:從零開始掌握 API 測試

    Postman 新手入門指南&#xff1a;從零開始掌握 API 測試 一、Postman 是什么&#xff1f; Postman 是一款功能強大的 API 開發與測試工具&#xff0c;支持 HTTP 請求調試、自動化測試、團隊協作等功能。無論是開發人員還是測試工程師&#xff0c;都可以用它快速驗證接口的正確…

    運維工具推薦 -- 寶塔面板:一鍵部署服務器

    標題&#xff1a;寶塔面板&#xff1a;一鍵部署服務器&#xff0c;輕松管理你的云端世界 引言 在數字化時代&#xff0c;服務器管理對于個人開發者、中小企業或站長來說既是機遇也是挑戰。手動配置服務器環境耗時費力&#xff0c;而 寶塔面板 作為一款 免費開源、功能全面 的服…

    【軟件工程】03_軟件需求分析

    3.1 系統分析 1. 系統分析概述 系統分析是一組統稱為計算機系統工程的活動。它著眼于所有的系統元素,而非僅僅局限于軟件。系統分析主要探索軟件項目的目標、市場預期、主要的技術指標等,其目的在于幫助決策者做出是否進行軟件項目立項的決定。 2. 可行性分析(Feasibility …

    WD5202L超低成本 Buck 電源芯片的特性與應用電路解析, 將市電轉換為 5V 電壓

    WD5202L&#xff1a;超低成本 Buck 電源芯片的特性與應用電路解析 在現代電子設備的小型化、低成本化趨勢下&#xff0c;對電源管理芯片的性能、成本和尺寸提出了嚴苛要求。WD5202L 作為一款超低成本的 Buck 電源芯片&#xff0c;憑借其獨特的特性&#xff0c;在眾多應用場景中…

    UART轉AHB模塊ModelSim仿真

    一、簡介 UART轉AHB模塊用于實現一種簡單的通過上位機控制FPGA內部寄存器的方式。上位機通過串口助手發送讀寫寄存器的指令&#xff0c;UART轉AHB模塊接收指令后解析出地址&#xff0c;命令&#xff0c;數據信息&#xff0c;然后轉成AHB總線格式輸出。這時UART轉AHB模塊相當于A…

    Qt5.15.2實現Qt for WebAssembly與示例

    目錄 1.什么是Qt for WebAssembly&#xff1f; 1.1 什么是 WebAssembly&#xff1f; 1.2 WebAssembly 的優勢 1.3 什么是 Qt for WebAssembly&#xff1f; 1.4 Qt for WebAssembly 的特點 1.5 編譯過程 1.6 運行時環境 注意&#xff01;&#xff01;&#xff01;注意&am…

    AGI大模型(8):提示詞的安全與防護

    1 前言 著名的「奶奶漏洞」&#xff0c;?套路把 AI 繞懵。 2 常?的提示詞攻擊技術 2.1 同類型?標劫持 同類?標劫持攻擊&#xff0c;特別是在同類型任務的背景下&#xff0c;涉及到攻擊者通過?法?段控制模型&#xff0c;并迫使其執行與原始任務性質相同但?標不同的操作…

    使用redis客戶端中對于json數據格式的存儲和讀取

    代碼背景&#xff1a; 現在有一個json格式的數據&#xff0c;但是由于redis客戶端上面沒辦法直接創建/導入json的數據格式。 故考慮現在redis客戶端上先存儲一個名為"old_order"的string類型的的源數據。 思路&#xff1a; 由于直接使用redisTemplate獲取自動導入…

    專題三搜索插入位置

    1.題目 題目分析&#xff1a; 給一個目標值&#xff0c;然后要在排序的整數數組中&#xff0c;找到跟目標值一樣的&#xff0c;如果沒有就把這個值插入進去&#xff0c;然后返回插入后的下標。 2.算法原理 根據題目的時間復雜度可以知道要用二分&#xff0c;開始劃分區域&…

    Redis監控:從睜眼瞎到千里眼的進化史

    各位在Redis迷霧中摸黑的探險家們&#xff01;今天我們要給Redis裝上"天眼系統"——從連自己內存爆了都不知道的睜眼瞎&#xff0c;進化到連每秒哪個鍵被摸了幾次都門兒清的監控狂魔&#xff01;準備好迎接《Redisの楚門世界》了嗎&#xff1f;&#x1f441;? 第一幕…