小北用AI做了一个合并Excel的工具,全程只动嘴,不动手

前言

友友们日常工作中经常有合并excel表格的需求,比如说小北要把下面三个开票申请表合并汇总成一个总的文件。如果需要合并的文件数量少,那还可以手工的复制粘贴。如果文件数量巨大,而且格式还不一样,那估计心里就阿巴阿巴了~跟着小北5分钟上手AI代码编辑器Cursor,零基础开发Chrome插件 ,从此以后你也是高级程序员了!-CSDN博客icon-default.png?t=O83Ahttps://blog.csdn.net/Zhiyilang/article/details/142454478?spm=1001.2014.3001.5502

今天小北就带友友们试一下用最近刷爆网络的cursor工具让AI来制作一个小程序。说实在的,整个体验下来,确实惊艳到了我。全程我没有写一行代码,全部工作都由AI完成了。那感觉就好像基层牛马转身就变成了领导“指点江山,挥斥方遒”,而且AI还不用发工资,可以给它提一万个需求而没有半句怨言。

Cursoricon-default.png?t=O83Ahttps://www.cursor.com/言归正传,下面是小北准备的3个测试文档。我要用AI写一个小工具,将这3个文档合并成一个文档。打开cursor,ctrl+L唤出聊天模式,然后把需求告诉AI。然后AI就开始吭哧吭哧干活了。

左边工程目录下有几个excel文件夹。现在我的需求是:处理多个开票申请表文件合并成单个大文件。其中“开票申请表1.xls”为模板文件。其他以数字结尾的文件为要合并的文件。

1、这个脚本的工作原理如下:

  • 定义文件夹路径和模板文件路径。
  • 读取模板文件。
  • 初始化一个空的DataFrame来存储合并后的数据。
  • 遍历文件夹中的所有文件,检查文件是否以.xlsx结尾并且文件名中包含数字。
  • 读取符合条件的文件并将其数据追加到合并后的DataFrame中。
  • 将合并后的数据写入到模板文件的一个新工作表中。

运行这个脚本后,你会在模板文件中看到一个名为“合并数据”的新工作表,其中包含了所有合并后的数据。

清华大学的镜像源:

pip install pandas openpyxl --index-url https://pypi.tuna.tsinghua.edu.cn/simple

运行了一下,不出所料报错了。把报错信息丢给AI让它自己改bug

报错:安装:

pip install pandas xlrd

使用国内镜像源

你可以尝试使用阿里云或清华大学提供的 PyPI 镜像源来安装 xlrd。这里是如何使用的命令:

使用阿里云镜像源

pip install xlrd --index-url https://mirrors.aliyun.com/pypi/simple/

使用清华大学镜像源

pip install xlrd --index-url https://pypi.tuna.tsinghua.edu.cn/simple

2、这个脚本的工作原理如下:

1. 定义文件夹路径和模板文件路径。

2. 打印模板文件路径,确认路径是否正确。

3. 检查模板文件是否存在。如果不存在,抛出 FileNotFoundError 异常。

4. 使用 xlrd 引擎读取模板文件。

  • 初始化一个空的 DataFrame 来存储合并后的数据。
  • 遍历文件夹中的所有文件,检查文件是否以 .xls 结尾并且文件名中包含数字。

7. 使用 xlrd 引擎读取符合条件的文件并将其数据追加到合并后的 DataFrame 中。

  • 使用 xlwt 引擎将合并后的数据写入到模板文件的一个新工作表中。

请确保你已经安装了 xlrd 和 xlwt 库。如果没有安装,可以使用以下命令进行安装:

pip install xlrd xlwt

运行这个脚本后,你会在模板文件中看到一个名为“合并数据”的新工作表,其中包含了所有合并后的数据。

继续提需求:

进一步的。在合并之前,检查每个文件的数据格式是否一致,如列名、数据类型等.
如果不一致,需要进行适当的数据清洗和格式化。(并重新按顺序做成三行并分类)

小北觉得还不够完美,那继续让AI优化。

等了几十秒分钟,AI就把程序写好了,60多行行云流水,一气呵成。

最终出来的效果就是这样。很完美的实现了我的需求。

 代码:

import os
import pandas as pd

# 定义文件夹路径
folder_path = r'd:\桌面\开票申请表'

# 定义模板文件
template_file = os.path.join(folder_path, '开票申请表1.xls')

# 打印模板文件路径,确认路径是否正确
print(f"模板文件路径: {template_file}")

# 检查模板文件是否存在
if not os.path.exists(template_file):
    raise FileNotFoundError(f"模板文件未找到: {template_file}")

# 读取模板文件
template_df = pd.read_excel(template_file, engine='xlrd')

# 初始化一个空的DataFrame来存储合并后的数据
merged_df = pd.DataFrame()

# 获取模板文件的列名和数据类型
template_columns = template_df.columns
template_dtypes = template_df.dtypes

# 初始化一个字典来存储每个文件的数据
data_dict = {}

# 遍历文件夹中的所有文件
for file_name in os.listdir(folder_path):
    # 检查文件是否以.xls结尾并且文件名中包含数字1、2、3
    if file_name.endswith('.xls') and any(file_name.endswith(f'{i}.xls') for i in range(1, 4)):
        file_path = os.path.join(folder_path, file_name)
        # 读取当前文件
        df = pd.read_excel(file_path, engine='xlrd')
        
        # 检查列名是否一致
        if not df.columns.equals(template_columns):
            print(f"文件 {file_name} 的列名不一致,进行重命名")
            df.columns = template_columns
        
        # 检查数据类型是否一致
        for col in template_columns:
            if df[col].dtype != template_dtypes[col]:
                print(f"文件 {file_name} 的列 {col} 的数据类型不一致,进行转换")
                df[col] = df[col].astype(template_dtypes[col])
        
        # 将当前文件的数据存储到字典中
        data_dict[file_name] = df

# 将数据按顺序排列成三行并分类的报表
report_df = pd.concat(data_dict.values(), keys=data_dict.keys(), names=['文件名', '行'])

# 定义输出文件路径
output_file = os.path.join(folder_path, '合并后的文件.xlsx')

# 将合并后的数据写入到新的 .xlsx 文件中
with pd.ExcelWriter(output_file, engine='openpyxl') as writer:
    report_df.to_excel(writer, sheet_name='合并数据')

print(f"文件合并完成!合并后的文件保存在: {output_file}")

3、这个脚本的工作原理如下:

1. 定义文件夹路径和模板文件路径。

2. 打印模板文件路径,确认路径是否正确。

3. 检查模板文件是否存在。如果不存在,抛出 FileNotFoundError 异常。

4. 使用 xlrd 引擎读取 .xls 模板文件。

5. 初始化一个空的 DataFrame 来存储合并后的数据。

6. 获取模板文件的列名和数据类型。

7. 初始化一个字典来存储每个文件的数据。

8. 遍历文件夹中的所有文件,检查文件是否以 .xls 结尾并且文件名中包含数字1、2、3。

9. 使用 xlrd 引擎读取符合条件的文件。

10. 检查每个文件的列名是否与模板文件一致,如果不一致,进行重命名。

11.检查每个文件的列的数据类型是否与模板文件一致,如果不一致,进行数据类型转换。

12. 将当前文件的数据存储到字典中。

13. 将数据按顺序排列成三行并分类的报表。

14. 定义输出文件路径。

15. 使用 openpyxl 引擎将合并后的数据写入到一个新的 .xlsx 文件中。

请确保你已经安装了 pandas、openpyxl 和 xlrd 库。如果没有安装,可以使用以下命令进行安装:

pip install pandas openpyxl xlrd

运行这个脚本后,你会在指定的文件夹中看到一个名为“合并后的文件.xlsx”的新文件,其中包含了所有合并后的数据,并且数据格式一致且按顺序排列成三行并分类的报表。这样可以确保文件格式正确并避免乱码问题。

当然我这里实验的是最简单的文档合并,所有文档的格式内容都是一样的。如果文档文件格式不统一,你可能需要将它们转换为统一的格式,比如Excel、pdf,这样可以更容易地进行合并。如果数据格式不统一,在合并之前,可能检查每个文件的数据格式是否一致,如列名、数据类型等。如果不一致,需要进行适当的数据清洗和格式化。当然你可以一直提需求,直到AI都改好了为止。

你能设计个winodws可执行程序。将这个程序变成带ui的可执行程序么。用户只要上传模板和要合并的源文件,自动生成合并后的excel

 最后我让AI做了个UI界面,方便文档的上传下载,这次AI一次完成,没有出错。

总结

       小北整个过程体验下来还是非常丝滑的。前段时间Openai新出了gpt-o1模型,大幅提高了处理复杂推理和问题解决方面的表现。假如再经过几轮迭代,用嘴做产品的现象将会成为现实。这件事比需要prompt或者workflow来搭建工作流,更加让人兴奋。也许未来“人人都是产品经理”将会成为现实~

猜你喜欢

转载自blog.csdn.net/Zhiyilang/article/details/142496045