python批量画Excel里面的数据

 这样的excel文件每两列画一组散点图,而且所有的散点图都要在一张图上面。

import os
import win32ui
import openpyxl
from openpyxl.chart import(ScatterChart,Reference,Series)

DesktopPath = 'C:\\' # 桌面路径
FilePath = win32ui.CreateFileDialog(1)  # 1表示打开文件对话框
FilePath.SetOFNInitialDir(DesktopPath )  # 设置打开文件对话框中的初始显示目录
FilePath.DoModal() # 等待获取用户选择的文件
FileName = FilePath.GetPathName()  # 获取选择的文件名称
file = os.path.split(FileName)[0]   # 文件夹
lst = os.listdir(file) # 列出所有文件
if not os.path.exists(file+"\\T2数据处理"):
    os.mkdir(file+"\\T2数据处理") # 文件夹已经存在,如果接着创建程序会报错
    new = file+"\\T2数据处理"
else:
    i = 0
    while True:
        if not os.path.exists(file+"\\T2数据处理"+str(i)):
            os.mkdir(file+"\\T2数据处理"+str(i))
            new = file+"\\T2数据处理"+str(i)
            break
        else:
            i=i+1
for item in lst:
    if item.endswith('.xlsx'):  # 文件格式是Excel的文件
        path = file + '\\' + item # 文件路径
        # path = repr(path) 正则化
        wb = openpyxl.load_workbook(path)  # 打开已有的文件
        ws = wb.active  # 查看已激活的sheet
        maxcol = ws.max_column  # 当前sheet的最大列
        maxrow = ws.max_row  # 当前sheet的最大行
        print(maxcol)

        # 第四步:创建散点图,并设置图的样式
        chart = ScatterChart()
        chart.title = '105LiM0LiCL'
        chart.style = 10
        chart.y_axis.title = '弛豫信号'
        chart.x_axis.title = 'T2'
        #  设置坐标轴位置
        # chart为散点图对象
        chart.x_axis.crosses = 'min'  # min是“y轴的最小值”
        chart.y_axis.crosses = 'max'  # max是“X轴的最大值”
        # 改成对数x轴
        chart.x_axis.scaling.logBase = 10
        # 宽高
        chart.height = 12
        chart.width = 18
        #
        chart.y_axis.crosses = 'min'
        chart.y_axis.tickLblPos = 'low'
        #
        chart.y_axis.majorGridlines = None
        chart.x_axis.majorGridlines = None
        # 刻度线的显示位置

        chart.y_axis.majorTickMark = 'in'  # ['cross:俩边', 'in:内', 'out:外'] 不设没有
        chart.x_axis.majorTickMark = 'in'  # ['cross:俩边', 'in:内', 'out:外'] 不设没有

        for i in range(1, maxcol, 2):
            # 选择两列组成一个系列
            xdata = Reference(worksheet=ws, min_row=2, max_row=maxrow, min_col=i, max_col=i)
            ydata = Reference(worksheet=ws, min_row=1, max_row=maxrow, min_col=i + 1, max_col=i + 1)
            series = Series(ydata, xdata, title_from_data=True)
            # 第五步:将数据系列添加到图中
            chart.series.append(series)
            # 第六步:将图添加到工作表中
        ws.add_chart(chart, 'D6')
        # 第七步:保存Excel
        New_path = new + '\\' + os.path.basename(path)
        wb.save(New_path)
    else:
        continue

对于win32ui可能会安装失败,可以参考下面一篇文章进行安装

pip install win32gui 安装报错解决方案_python_Arthuryeah-DevPress官方社区

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值