Excel自动化

Excel自动化

1.安装与导入模块

`

pip install openpyxl

`

2.读取和处理数据

#读取数据
import pandas as pd
data = pd.read_excel('./data.xlsx')
data

在这里插入图片描述

其中每一列的含义如下:

InvoiceNo:发票编号

StockCode:产品代码

Description:产品名称

Quantity:产品数量

InvoiceDate:开票时间

UnitPrice:产品单价

CustomerID:客户编号

Country:国家名称

为了统计每天的销售额,我们先在数据中增加两列:日期和销售额,然后用函数实现汇总:

#转化数据格式
data['InvoiceDate'] = pd.to_datetime(data['InvoiceDate'])
#提取出日期
data['日期'] = data.InvoiceDate.dt.date
#计算销售额
df['销售额'] = df.Quantity * df.UnitPrice
#汇总每天的销售额
daily_sum = pd.DataFrame(data.groupby('日期')['销售额'].agg('sum')).reset_index()
daily_sum

在这里插入图片描述

3.设置和保存报表

接下来,我们对表格进行相应的设置,包括:重命名工作表、把数据写入工作表、自定义标题和表格边框样式、设置行高和列宽、不显示网格线、冻结窗格、自动筛选、设置日期和数字格式等等

from openpyxl.utils.dataframe import dataframe_to_rows
from openpyxl.styles import Font, Color, NamedStyle, Border, Side, PatternFill, Alignment, numbers

# 创建工作簿
wb = openpyxl.Workbook()

# 激活工作表
ws = wb.active

# 重命名工作表
ws.title = '每日销售额'

# 把数据写入工作表
for row in dataframe_to_rows(df_daily, index=False, header=True):
    ws.append(row)
    
# 创建自定义的标题样式
mytitle = NamedStyle(name='mytitle')
mytitle.font = Font(bold=True, size=11, color='FFFFFF')
bd = Side(style='thin', color='A6A6A6')
mytitle.border = Border(left=bd, top=bd, right=bd, bottom=bd)
mytitle.fill = PatternFill('solid', fgColor='00589F')
mytitle.alignment = Alignment(horizontal='left', vertical='center')
wb.add_named_style(mytitle)

# 创建自定义表格边框样式
myborder = NamedStyle(name='myborder')
myborder.font = Font(bold=False, size=11, color='000000')
bd = Side(style='thin', color='A6A6A6')
myborder.border = Border(left=bd, top=bd, right=bd, bottom=bd)
myborder.alignment = Alignment(vertical='center')
wb.add_named_style(myborder)

# 应用标题样式
for cell in ws[1]:
    cell.style = mytitle
    
# 对表格区域加边框
from openpyxl.utils import get_column_letter, column_index_from_string
table_range = ws['A2:' + get_column_letter(ws.max_column) + str(ws.max_row)]
for row in table_range:
    for cell in row:
        cell.style = myborder
    
# 设置行高和列宽
ws.row_dimensions[1].height = 26
ws.column_dimensions['A'].width = 15
ws.column_dimensions['B'].width = 12

# 设置不显示网格线
ws.views.sheetView[0].showGridLines = False

# 冻结窗格
ws.freeze_panes = 'A3'

# 自动筛选
ws.auto_filter.ref = 'A1:' + get_column_letter(ws.max_column) + str(ws.max_row)

# 设置对齐格式
for cell in ws['A']:
    cell.alignment = Alignment(horizontal='center', vertical='center')

# 设置日期格式
for cell in ws['A']:
    cell.number_format = numbers.FORMAT_DATE_YYYYMMDD2
    
# 设置数字格式
for cell in ws['B']:
    cell.number_format = numbers.BUILTIN_FORMATS[3]

最后,保存自动生成的 Excel 报表文件:

# 保存为新的表格
wb.save('./每日销售报表.xlsx')

打开这个新生成的 Excel 报表文件,其中的内容如下:

rs.BUILTIN_FORMATS[3]


最后,保存自动生成的 Excel 报表文件:

```python
# 保存为新的表格
wb.save('./每日销售报表.xlsx')

打开这个新生成的 Excel 报表文件,其中的内容如下:

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel自动化报表制作是指利用Excel软件的功能和工具,通过编写宏和使用函数,实现报表的自动生成和更新,提高工作效率和准确性。 首先,Excel自动化报表制作可以通过编写宏来实现。宏是一系列的指令和操作,能够自动完成繁琐的重复工作。通过记录和执行宏,可以一键生成报表,自动完成数据的提取、计算和格式化等操作。例如,可以编写宏来自动提取数据库中的数据,并按照特定的格式填充到报表中,省去了手动复制粘贴的步骤。 其次,Excel自动化报表制作可以利用函数来实现。Excel内置了丰富的函数,如SUM、AVERAGE、IF等,可以进行复杂的计算和数据处理。通过在报表中正确使用函数,可以根据特定的条件和规则自动计算和汇总数据。例如,可以使用SUM函数来自动计算某一列或某一区域的总和,或使用IF函数根据条件判断来自动分类和汇总数据。这样,只需要更新源数据,报表中的数据就会自动更新。 最后,Excel自动化报表制作还可以利用数据透视表来实现。数据透视表是Excel中用于快速汇总和分析大量数据的功能,可以根据需要对数据进行分组、汇总、筛选和排序。通过使用数据透视表,可以轻松地生成分析性的报表,同时,数据的修改和更新也会自动反映在报表中。 总之,Excel自动化报表制作能够节省时间和精力,提高工作效率和准确性。通过编写宏和使用函数,可以自动完成数据的提取、计算和格式化等操作。同时,利用数据透视表可以快速生成分析性的报表。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值