ChatGPT只接收文本内容,不存在“上传Excel文件”这样的选项。所以要想让它了解待处理Excel文件,就必须用文本格式描述清楚Excel工作表的结构,比如采用下面的样式:
| 证券简称 | 证券代码 | 行业 | 市值 | 公司总资产(亿元) | 上市公司资产负债率(%) | 上市公司净利润(亿元) |
|————|———-|——–|——-|———————|————————-|————————-|
| 中核科技 | 000777.SZ | 机械设备| 61 | 29.31 | 43.21 | 1.20 |
| 中国核电 | 601985.SH | 公用事业| 1454 | 4096.21 | 69.42 | 80.38 |
| 中国核建 | 601611.SH | 建筑装饰| 264 | 1717.43 | 82.58 | 15.33 |
| 同方股份 | 600100.SH | 计算机 | 202 | 617.85 | 67.06 | (18.79) |
或者直接复制文本让ChatGPT做进deal sheet,以下是实例


可以进行重复值的统计

给chatGPT指令:合并两张表到excel sheet,题头需要有省份和金额

另外由于ChatGPT不会自动执行Excel还可以请Python代码帮忙执行任务
(1)将待处理Excel文件的工作表结构告诉ChatGPT(2)对ChatGPT提问,让它返回一段Python代码(3)自动运行这段Python代码
关键技巧
(1)把Excel结构转为文本格式
Python社区中有一个名为 “tabulate” 的第三方模块,可以自动分析二维列表、pandas.DataFrame等二维数据结构,然后输出对应的纯文本形式内容。所以,如果我们先使用 xlwings 读入 Excel 工作表、并把它的UsedRange读取为二维列表,就可以使用 tabulate模块中的tabulate( )函数,得到这张工作表的文本描述。
(2)调用ChatGPT问答功能
得到了表格结构的文字描述,接下来就需要把这段文字以及用户输入的任务需求,一起提交给ChatGPT服务器。这个环节说简单其实很简单,因为ChatGPT已经提供了一个python模块openai,只要我们使用 pip 安装这个模块,并调用ChatCompletion.create方法,就能把指定字符串(比如下面例子中的 prompt )作为问题提交给ChatGPT服务器,由后者返回答案字符串。需要注意的是,ChatGPT返回的结果是一个json 对象,里面包含了很多信息,而我们最需要的答案文本,保存在这个json对象中的choices[0].message.conent中
这个调用看起来很简单,但麻烦的地方在于:我们不仅要通过技术手段,把电脑“伪装”成海外地区IP,而且必须到 openai 官方网站上申请一个“api key“,并且把它填写在python代码中
(3)自动执行ChatGPT生成的Python代码
我们编写的Python程序把提问发给ChatGPT后,后者会生成一段Python代码并返回给这个Python程序。使用Python系统函数exec( )就可以!
搞定了前面这些问题,我们就可以开始编写这个试验程序。具体代码包括几个部分:
(1)用于向ChatGPT提问并接收回答的函数 call_ChatGPT,每个任务我们会调用它三次,也就是前面讲到的“三次提问”
搞定了前面这些问题,我们就可以开始编写这个试验程序。具体代码包括几个部分:
(1)用于向ChatGPT提问并接收回答的函数 call_ChatGPT,每个任务我们会调用它三次,也就是前面讲到的“三次提问”
(2)执行自动化任务的主函数 auto_excel,覆盖前面所述的全部关键环节
(3)主程序,请用户输入Excel文件路径以及任务要求。