一、簡介
xlswriter是一個為Python的Excel文件格式生成庫,它可以讓我們用Python編程生成XLS、XLSX、和ODS格式的Excel文檔。它由John McNamara開發,是一個免費的、開源的、跨平台的軟件。
二、安裝
在通過pip在Python中安裝xlswriter:
pip install XlsxWriter
如果你使用conda,你也可以使用conda進行安裝:
conda install -c anaconda xlsxwriter
三、基本用法
1.創建一個簡單的工作簿
首先,我們將創建一個簡單的Excel工作簿並添加一些數據:
import xlsxwriter
# 新建一個工作簿
workbook = xlsxwriter.Workbook('example.xlsx')
# 新建一個sheet,並命名為'Mysheet'
worksheet = workbook.add_worksheet('Mysheet')
# 添加一個單元格,並寫入一個文本值
worksheet.write('A1', 'Hello world')
# 保存工作簿
workbook.close()
這將創建一個Excel工作簿,名為example.xlsx,其中包含一個名為’Mysheet’的工作表,其中包含一個單元格,其中包含「Hello world」文本。
2.添加數據系列
通過以下示例向工作表添加一些數據系列來進一步深入了解基礎知識:
import xlsxwriter
# 新建一個工作簿
workbook = xlsxwriter.Workbook('example2.xlsx')
# 新建一個sheet
worksheet = workbook.add_worksheet()
# 添加幾個數字
expenses = (
['Rent', 1000],
['Gas', 100],
['Food', 300],
['Gym', 50],
)
# 開始從第0行和0列的單元格寫入
row = 0
col = 0
# 在第0行上寫入標題
worksheet.write(row, col, 'Item')
worksheet.write(row, col + 1, 'Cost')
# 用行列數據寫入單元格
for item, cost in (expenses):
row += 1
worksheet.write(row, col, item)
worksheet.write(row, col + 1, cost)
# 寫入總計
worksheet.write(row + 1, 0, 'Total')
worksheet.write(row + 1, 1, '=SUM(B1:B4)')
# 關閉excel文件
workbook.close()
這將創建另一個名為example2.xlsx的Excel工作簿。在工作簿中,我們有一個名為Sheet1的單獨的工作表,其中包含四個數據系列:租金、燃油、食品和健身房。我們還在每行中添加了數字,以便在最後一行中顯示數字總計。
3.設置單元格格式
我們可以通過XlsxWriter的格式化功能為Excel單元格添加顏色、字體、邊框等格式:
import xlsxwriter
# 新建一個工作簿
workbook = xlsxwriter.Workbook('example3.xlsx')
# 新建一個sheet
worksheet = workbook.add_worksheet()
# 新建格式,設置背景顏色為紅色
format1 = workbook.add_format({'bg_color': '#FFC7CE',
'font_color': '#9C0006'})
# 新建格式,設置背景顏色為綠色
format2 = workbook.add_format({'bg_color': '#C6EFCE',
'font_color': '#006100'})
# 設置列的寬度
worksheet.set_column(1, 1, 15)
# 這些是可以運行和編輯的數據 - 來自"Hello" + "World"
headings = ['Hello', 'World']
# 原始數據
data = [
[1, 2, 3, 4, 5, 6, 7, 8],
[2, 4, 6, 8, 10, 12, 14, 16]
]
# 寫入數據和格式
for col_num, heading in enumerate(headings):
worksheet.write(0, col_num, heading, format1)
for row_num, row_data in enumerate(data):
worksheet.write_row(row_num + 1, 0, row_data, format2)
# 關閉Excel文件
workbook.close()
這將創建一個名為example3.xlsx的Excel工作簿。在此示例中,我們添加了一個包含兩個列(Hello和World)和兩個格式的單獨工作表。第一列使用format1格式,其中背景顏色為紅色,字體顏色為黑色,第二列使用format2格式,其中背景顏色為綠色,字體顏色為黑色。我們還設置了第二列的寬度為15,並通過調用write_row()方法將原始數據寫入工作表。
4.添加圖表
最後,我們將創建一個工作簿並使用XlsxWriter創建一個條形圖。我們將根據以下數據系列生成圖表:
import xlsxwriter
# 新建一個工作簿
workbook = xlsxwriter.Workbook('chart.xlsx')
# 新建一個sheet
worksheet = workbook.add_worksheet()
# 新建一個圖表對象
chart = workbook.add_chart({'type': 'column'})
# 設置單元格格式
headings = ['Category', 'Values']
# Original data
data = [
['Apple', 'Cherry', 'Pumpkin', 'Chocolate', 'Blueberry'],
[10, 20, 30, 20, 15],
]
# 寫入數據
worksheet.write_row('A1', headings)
worksheet.write_column('A2', data[0])
worksheet.write_column('B2', data[1])
# 添加數據系列來生成圖表
chart.add_series({
'categories': '=Sheet1!$A$2:$A$6',
'values': '=Sheet1!$B$2:$B$6',
})
# 添加圖表標題和標籤
chart.set_title({'name': 'Fruit'})
chart.set_x_axis({'name': 'Fruit'})
chart.set_y_axis({'name': 'Amount'})
# 將圖表放在工作表上以及指定一些布局和大小
worksheet.insert_chart('C2', chart, {'x_offset': 25, 'y_offset': 10})
workbook.close()
這將創建一個名為chart.xlsx的Excel工作簿,其中包含柱狀圖。我們使用add_chart()方法創建了一個column類型的圖表對象。我們還使用數據系列中的項目和值來配置數據系列,設置圖表標題和軸標籤,以及通過指定圖表大小和位置在工作表中插入圖表。
四、結論
使用xlswriter可以輕鬆地在Python中生成Excel文檔。我們可以使用它來編寫腳本,減少手動操作,提高效率,同時使Python成為一個更好的工具。
原創文章,作者:SSVJQ,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/371874.html