python处理EXCEL
在Python中,有多个库可以用来操作Excel文件。其中比较常用的有openpyxl,pandas,xlsxwriter以及xlwings。下面我将分别介绍这些库及其使用方法。
一、openpyxl
安装
pip install openpyxl
示例代码
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Font, Alignment
from openpyxl.chart import BarChart, Reference
# 创建一个新的Excel文件并写入数据
wb = Workbook()
ws = wb.active
ws.title = "Sheet1"
# 写入数据
ws['A1'] = 'Hello'
ws.append([1, 2, 3])
ws.append([4, 5, 6])
ws.append([7, 8, 9])
# 设置字体和对齐方式
ws['A1'].font = Font(size=14, bold=True)
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
# 合并单元格
ws.merge_cells('A1:C1')
# 添加公式
ws['A5'] = '=SUM(A2:A4)'
# 创建图表
chart = BarChart()
data = Reference(ws, min_col=1, min_row=2, max_col=3, max_row=4)
chart.add_data(data, titles_from_data=True)
ws.add_chart(chart, "E5")
# 保存文件
wb.save('openpyxl_example.xlsx')
# 读取已有的Excel文件
wb = load_workbook('openpyxl_example.xlsx')
ws = wb.active
print(ws['A1'].value) # 输出 'Hello'
二、pandas
安装
pip install pandas openpyxl
示例代码
import pandas as pd
# 创建数据
df = pd.DataFrame({
'A': [1, 2, 3],
'B': [4, 5, 6],
'C': [7, 8, 9]
})
# 写入数据到Excel
df.to_excel('pandas_example.xlsx', index=False)
# 读取Excel数据
df = pd.read_excel('pandas_example.xlsx')
print(df)
# 使用pandas进行Excel格式设置和单元格合并需要使用openpyxl
from openpyxl import load_workbook
from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import Font, Alignment
# 载入工作簿和工作表
wb = load_workbook('pandas_example.xlsx')
ws = wb.active
# 设置字体和对齐方式
ws['A1'].font = Font(size=14, bold=True)
ws['A1'].alignment = Alignment(horizontal='center', vertical='center')
# 合并单元格
ws.merge_cells('A1:C1')
# 添加公式
ws['A5'] = '=SUM(A2:A4)'
# 保存文件
wb.save('pandas_example.xlsx')
三、xlsxwriter
安装
pip install XlsxWriter
示例代码
import xlsxwriter
# 创建一个新的Excel文件
workbook = xlsxwriter.Workbook('xlsxwriter_example.xlsx')
worksheet = workbook.add_worksheet()
# 写入数据
data = [10, 40, 50, 20, 10, 50]
worksheet.write_column('A1', data)
# 设置格式
bold = workbook.add_format({'bold': True})
worksheet.write('A1', 'Hello', bold)
# 合并单元格
worksheet.merge_range('A1:C1', 'Merged Cells', bold)
# 添加公式
worksheet.write('A8', '=SUM(A2:A7)')
# 创建一个图表对象
chart = workbook.add_chart({'type': 'column'})
# 配置图表数据范围
chart.add_series({'values': '=Sheet1!$A$2:$A$7'})
# 将图表插入工作表
worksheet.insert_chart('E5', chart)
# 关闭并保存文件
workbook.close()
四、xlwings
安装
pip install xlwings
示例代码
操作Excel程序
import xlwings as xw
# 启动Excel应用程序
app = xw.App(visible=True, add_book=False)
操作工作簿
# 创建一个新的工作簿
wb = app.books.add()
# 或者打开一个已有的工作簿
wb = app.books.open('xlwings_example.xlsx')
操作工作表
# 获取活动工作表
sheet = wb.sheets.active
# 添加一个新的工作表
new_sheet = wb.sheets.add('NewSheet')
# 选择一个已有的工作表
sheet = wb.sheets['Sheet1']
操作单元格
# 写入数据到单元格
sheet['A1'].value = 'Hello, xlwings'
# 写入一列数据
sheet['A2'].value = [1, 2, 3, 4, 5]
# 读取单元格数据
print(sheet['A1'].value)
# 设置单元格格式
sheet['A1'].font.bold = True
sheet['A1'].font.size = 14
sheet['A1'].api.HorizontalAlignment = xw.constants.HAlign.xlHAlignCenter
# 合并单元格
sheet.range('A1:C1').merge()
# 添加公式
sheet['A7'].formula = '=SUM(A2:A6)'
# 添加图表
chart = sheet.charts.add()
chart.set_source_data(sheet.range('A2:A6'))
chart.chart_type = 'line'
chart.name = 'SampleChart'
# 保存工作簿
wb.save('xlwings_example.xlsx')
# 关闭工作簿
wb.close()
关闭Excel应用程序
# 关闭Excel应用程序
app.quit()