`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 報告變得更加容易。