[python3]Excel解析庫-XlsxWriter

`XlsxWriter` 是一個用于創建 Excel `.xlsx` 文件的 Python 庫,它允許你編寫程序來生成 Excel 文件,而無需實際運行 Microsoft Excel 應用程序。`XlsxWriter` 支持寫入數據、應用格式化、插入圖表和圖形等多種功能,并且可以處理較大的數據集。它是一個非常流行的選擇,尤其是在需要創建復雜的 Excel 報告或進行數據可視化時。

安裝

要開始使用 `XlsxWriter`,首先需要安裝它。你可以通過 pip 來安裝最新版本:

```bash
pip3 install XlsxWriter
```

基本用法

#### 創建一個新的工作簿并添加數據以下是一個簡單的例子,演示了如何使用 `XlsxWriter` 創建一個新的 Excel 文件并向其中添加一些數據:```python
import xlsxwriter# 創建一個新的工作簿對象,并添加一個工作表
workbook = xlsxwriter.Workbook('example.xlsx')
worksheet = workbook.add_worksheet()# 寫入一些數據到單元格
worksheet.write('A1', 'Hello') ?# 單元格位置, 數據
worksheet.write('B1', 'World')# 關閉工作簿(保存文件)
workbook.close()
```#### 設置單元格格式`XlsxWriter` 提供了豐富的格式化選項,包括字體、顏色、對齊方式等。下面是如何應用樣式的示例:```python
import xlsxwriter# 創建一個新的工作簿和工作表
workbook = xlsxwriter.Workbook('formatted_example.xlsx')
worksheet = workbook.add_worksheet()# 定義一個樣式對象
bold = workbook.add_format({'bold': True})
italic = workbook.add_format({'italic': True})# 使用樣式寫入數據
worksheet.write('A1', 'Bold Text', bold)
worksheet.write('A2', 'Italic Text', italic)# 關閉工作簿(保存文件)
workbook.close()
```#### 合并單元格你可以合并一行或一列中的多個單元格:```python
import xlsxwriter# 創建一個新的工作簿和工作表
workbook = xlsxwriter.Workbook('merged_cells.xlsx')
worksheet = workbook.add_worksheet()# 寫入數據并合并單元格
worksheet.merge_range('A1:B1', 'Merged Cells') ?# 第一行, 最后一行, 第一列, 最后一列, 數據# 關閉工作簿(保存文件)
workbook.close()
```#### 添加公式`XlsxWriter` 支持將公式寫入 Excel 單元格中:```python
import xlsxwriter# 創建一個新的工作簿和工作表
workbook = xlsxwriter.Workbook('formula_example.xlsx')
worksheet = workbook.add_worksheet()# 寫入數值
worksheet.write(0, 0, 1) ?# A1
worksheet.write(0, 1, 2) ?# B1# 寫入公式
worksheet.write_formula(1, 0, '=A1 + B1') ?# A2# 關閉工作簿(保存文件)
workbook.close()
```#### 插入圖表`XlsxWriter` 支持插入多種類型的圖表,如柱狀圖、折線圖等。以下是如何插入柱狀圖的示例:```python
import xlsxwriter# 創建一個新的工作簿和工作表
workbook = xlsxwriter.Workbook('chart_example.xlsx')
worksheet = workbook.add_worksheet()# 寫入一些數據作為圖表的數據源
data = [['Category', 'Value'],['A', 10],['B', 40],['C', 50],
]worksheet.write_row('A1', data[0])
worksheet.write_column('A2', data[1][0::2])
worksheet.write_column('B2', data[1][1::2])# 創建一個圖表對象
chart = workbook.add_chart({'type': 'column'})# 配置圖表系列
chart.add_series({'name': ? ? ? '=Sheet1!$B$1','categories': '=Sheet1!$A$2:$A$4','values': ? ? '=Sheet1!$B$2:$B$4',
})# 插入圖表到工作表中
worksheet.insert_chart('D2', chart)# 關閉工作簿(保存文件)
workbook.close()
```#### 處理日期和時間`XlsxWriter` 可以正確地處理 Python 的 `datetime` 對象,并將它們轉換為 Excel 的日期/時間格式:```python
import xlsxwriter
from datetime import datetime# 創建一個新的工作簿和工作表
workbook = xlsxwriter.Workbook('date_time_example.xlsx')
worksheet = workbook.add_worksheet()# 定義日期格式
date_format = workbook.add_format({'num_format': 'yyyy-mm-dd'})# 寫入當前日期
worksheet.write_datetime('A1', datetime.now(), date_format)# 關閉工作簿(保存文件)
workbook.close()
```### 更多高級特性- **條件格式**:可以根據單元格內容自動應用不同的格式。
- **數據驗證**:可以設置數據有效性規則,例如下拉列表、數字范圍限制等。
- **超鏈接**:支持插入內部或外部的超鏈接。
- **圖片和形狀**:可以插入圖片、繪制形狀等。
- **頁眉頁腳**:可以自定義打印時的頁眉和頁腳。
- **頁面布局**:可以設置紙張大小、方向、邊距等打印屬性。### 示例:完整代碼示例以下是一個完整的例子,演示了如何使用 `XlsxWriter` 創建包含圖表的工作簿,并將其保存到文件系統中:```python
import xlsxwriter
from datetime import datetimedef create_workbook_with_chart():# 創建一個新的工作簿和工作表workbook = xlsxwriter.Workbook('workbook_with_chart.xlsx')worksheet = workbook.add_worksheet()# 寫入一些數據作為圖表的數據源data = [['Category', 'Value'],['A', 10],['B', 40],['C', 50],]worksheet.write_row('A1', data[0])worksheet.write_column('A2', data[1][0::2])worksheet.write_column('B2', data[1][1::2])# 創建一個圖表對象chart = workbook.add_chart({'type': 'column'})# 配置圖表系列chart.add_series({'name': ? ? ? '=Sheet1!$B$1','categories': '=Sheet1!$A$2:$A$4','values': ? ? '=Sheet1!$B$2:$B$4',})# 插入圖表到工作表中worksheet.insert_chart('D2', chart)# 寫入當前日期date_format = workbook.add_format({'num_format': 'yyyy-mm-dd'})worksheet.write_datetime('A6', datetime.now(), date_format)# 關閉工作簿(保存文件)workbook.close()if __name__ == "__main__":create_workbook_with_chart()

總結

`XlsxWriter` 是一個強大且靈活的庫,適用于需要生成 Excel 文件的應用場景。它不僅簡化了數據寫入的過程,還提供了豐富的格式化和圖表功能,使得創建復雜的 Excel 報告變得更加容易。

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

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

相關文章

Linux下部署SSM項目

作者主頁&#xff1a;舒克日記 簡介&#xff1a;Java領域優質創作者、Java項目、學習資料、技術互助 文中獲取源碼 Linux部署SSM項目 打包項目 1、修改pom.xml文件&#xff0c;打包方式改為war <packaging>war</packaging>2、idea 通過maven的clean&#xff0c;…

Bytebase 3.0.1 - 可配置在 SQL 編輯器執行 DDL/DML

&#x1f680; 新功能 新增環境策略&#xff0c;允許在 SQL 編輯器內直接執行 DDL/DML 語句。 支持為 BigQuery 數據脫敏。 在項目下新增數據訪問控制及脫敏管理頁面。 在數據庫頁面&#xff0c;支持回滾到變更歷史的某個版本。 &#x1f514; 兼容性變更 禁止工單創建…

ansible 知識點【回顧梳理】

ansible 知識點 1. 劇本2. facts變量3. register變量4. include功能5. handlers6. when 條件7. with_items 循環8. Jinja2模板9. group_vars10. roles :star::star::star: 看起來字數很多&#xff0c;實際有很多是腳本執行結果&#xff0c;內容不多哦 1. 劇本 劇本很重要的就是…

LLM之RAG實戰(五十一)| 使用python和Cypher解析PDF數據,并加載到Neo4j數據庫

一、必備條件&#xff1a; python語言Neo4j數據庫python庫&#xff1a;neo4j、llmsherpa、glob、dotenv 二、代碼&#xff1a; from llmsherpa.readers import LayoutPDFReaderfrom neo4j import GraphDatabaseimport uuidimport hashlibimport osimport globfrom datetime …

MLU上使用MagicMind GFPGANv1.4 onnx加速!

文章目錄 前言一、平臺環境準備二、環境準備1.GFPGAN代碼處理2.MagicMind轉換修改env.sh修改run.sh參數解析運行 3.修改后模型運行 前言 MagicMind是面向寒武紀MLU的推理加速引擎。MagicMind能將人工智能框架&#xff08;TensorFlow、PyTorch、Caffe與ONNX等&#xff09;訓練好…

關于大數據的基礎知識(一)——定義特征結構要素

成長路上不孤單&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a;&#x1f60a; 【14后&#x1f60a;///計算機愛好者&#x1f60a;///持續分享所學&#x1f60a;///如有需要歡迎收藏轉發///&#x1f60a;】 今日分享關于大數據的基礎知識&#xff08;一&a…

H5通過URL Scheme喚醒手機地圖APP

1.高德地圖 安卓URL Scheme&#xff1a;baidumap:// 官方文檔&#xff1a;https://lbs.amap.com/api/amap-mobile/guide/android/navigation IOS URL Scheme&#xff1a;iosamap:// 官方文檔&#xff1a;https://lbs.amap.com/api/amap-mobile/guide/ios/navi HarmonyOS NEXT U…

音視頻入門基礎:MPEG2-PS專題(5)——FFmpeg源碼中,解析PS流中的PES流的實現

音視頻入門基礎&#xff1a;MPEG2-PS專題系列文章&#xff1a; 音視頻入門基礎&#xff1a;MPEG2-PS專題&#xff08;1&#xff09;——MPEG2-PS官方文檔下載 音視頻入門基礎&#xff1a;MPEG2-PS專題&#xff08;2&#xff09;——使用FFmpeg命令生成ps文件 音視頻入門基礎…

國標GB28181-2022視頻平臺EasyGBS小知識:局域網ip地址不夠用怎么解決?

在局域網中&#xff0c;IP地址不足的問題通常不會在小型網絡中出現&#xff0c;但在擁有超過255臺設備的大型局域網中&#xff0c;就需要考慮如何解決IP地址不夠用的問題了。 在企業局域網中&#xff0c;經常會出現私有IP地址如192.168.1.x到192.168.1.255不夠用的情況。由于0…

spring boot啟動源碼分析(三)之Environment準備

上一篇《spring-boot啟動源碼分析&#xff08;二&#xff09;之SpringApplicationRunListener》 環境介紹&#xff1a; spring boot版本&#xff1a;2.7.18 主要starter:spring-boot-starter-web 本篇開始講啟動過程中Environment環境準備&#xff0c;Environment是管理所有…

springmvc前端傳參,后端接收

RequestMapping注解 Target({ElementType.METHOD, ElementType.TYPE}) Retention(RetentionPolicy.RUNTIME) Documented Mapping public interface RequestMapping {String name() default "";AliasFor("path")String[] value() default {};AliasFor(&quo…

分布式鎖 Redis vs etcd

為什么要實現分布式鎖?為什么需要分布式鎖,分布式鎖的作用是什么,哪些場景會使用到分布式鎖?分布式鎖的實現方式有哪些分布式鎖的核心原理是什么 如何實現分布式鎖redis(自旋鎖版本)etcd 的分布式鎖(互斥鎖(信號控制)版本) 分布式鎖對比redis vs etcd 總結 為什么要實現分布式…

【Excel/WPS】根據平均值,生成兩列/多列指定范圍的隨機數/隨機湊出兩列數據

原理就是通過隨機生成函數和平均值函數。 適用場景&#xff1a;在總體打分后&#xff0c;需要在小項中隨機生成小分數 第一列&#xff1a;固定的平均值A2第二列&#xff1a; RANDBETWEEN(A2-10,A210)第三列&#xff1a;根據第二列用平均值函數算除 A2*2-B2這是隨機值1的公式&am…

芯片詳細講解,從而區分CPU、MPU、DSP、GPU、FPGA、MCU、SOC、ECU

目錄 芯片的概念結構 芯片的派系劃分 通用芯片&#xff08;CPU&#xff0c;MPU&#xff0c;GPU&#xff0c;DSP&#xff09; 定制芯片&#xff08;FPGA&#xff0c;ASIC&#xff09; 芯片之上的集成&#xff08;MCU&#xff0c;SOC&#xff0c;ECU&#xff09; 軟硬件的匹…

運動相機拍攝的視頻打不開怎么辦

3-10 GoPro和大疆DJI運動相機的特點&#xff0c;小巧、高清、續航長、拍攝穩定&#xff0c;很多人會在一些重要場合用來拍攝視頻&#xff0c;比如可以用來拿在手里拍攝快速運動中的人等等。 但是畢竟是電子產品&#xff0c;有時候是會出點問題的&#xff0c;比如意外斷電、摔重…

智能化文檔開發(DI)

這個文檔涉及到多模態&#xff08;文本、發票、訂單、語音&#xff09; 對于普通的文本&#xff0c;我們希望對某些實體的某些屬性挖空生成文檔模版&#xff0c;并根據預設字段填空最后生成正式文件對于發票、訂單&#xff0c;我們想提取它的字段信息&#xff0c;寫入DB對于一些…

CSS語言的編程范式

CSS語言的編程范式 引言 在現代網頁開發中&#xff0c;CSS&#xff08;層疊樣式表&#xff09;作為一種樣式語言&#xff0c;承擔著網站前端呈現的重要角色。無論是簡單的靜態網頁還是復雜的單頁應用&#xff0c;CSS都在人機交互中發揮著至關重要的作用。掩蓋在美觀背后的&am…

【輕松學C:編程小白的大冒險】--- C語言簡介 02

在編程的藝術世界里&#xff0c;代碼和靈感需要尋找到最佳的交融點&#xff0c;才能打造出令人為之驚嘆的作品。而在這座秋知葉i博客的殿堂里&#xff0c;我們將共同追尋這種完美結合&#xff0c;為未來的世界留下屬于我們的獨特印記。 【輕松學C&#xff1a;編程小白的大冒險】…

零基礎 監控數據可視化 Spring Boot 2.x(Actuator + Prometheus + Grafana手把手) (上)

一、安裝Prometheus Releases prometheus/prometheus GitHubhttps://github.com/prometheus/prometheus/releases 或 https://prometheus.io/download/https://prometheus.io/download/ 1. 下載適用于 Windows 的二進制文件&#xff1a; 找到最新版本的發布頁面&#xf…

Idea日志亂碼

問題描述 前提&#xff1a;本人使用windows Idea運行sh文件&#xff0c;指定了utf-8編碼&#xff0c;但是運行過程中還是存在中文亂碼 Idea的相關配置都已經調整 字體調整為雅黑 文件編碼均調整為UTF-8 調整Idea配置文件 但是還是存在亂碼&#xff0c;既然Idea相關配置已經…