ChatGPT初尝试——合并Excel表格【AI版】

无意间的刷到的视频

晚上在家刷视频,突然看到一个在讲关于AI编程的视频,心里疑问:真的假的,这么厉害的吗?于是我看完他的讲解和操作,他这个视频中确实用ChatGPT实现了他所提出的要求,编写了一段代码,当然,up主要求用的Python编写的,我不知道用C++或者Java行不行得通,接下来我就亲自使用以下ChatGPT,验验货。
开图

一、提需求

我需要将给定文件夹中的所有Excel表数据,汇总到一个给定的Excel表中,请按照以下要求,
编写Python:
一、每个分表中有两个sheet,第一个是班级基本信息,第二个是班级学生成绩排名;
二、班级基本信息sheet中,班级编号、教师姓名、班级人数、班长,教师姓名;
三、班级成绩排名sheet中,第一列是序号、第二列是学号、第三列是学生姓名、第四列是成绩;
四、总表只需要一个sheet,并且需将列设置为序号、班级编号、教师姓名、班级人数、班长、学号、学生姓名、成绩;
五、班级编号、教师姓名、班级人数,必须要和每个学生的成绩信息一一对应;
六、做一个程序运行进度条,表示已复制到的学生条目数。

二、ChatGPT用Python编写代码

下面是使用GPT的截图:

需求

代码01

生成代码如下:

import os
import openpyxl
from tqdm import tqdm

# 定义常量
BASE_DIR = 'path/to/folder'  # 文件夹路径
OUTPUT_FILE = 'path/to/output.xlsx'  # 输出文件路径
SHEET_NAMES = ['基本信息', '成绩排名']  # sheet名称
HEADER_ROWS = [1, 1]  # 表头所在行数
HEADER_COLS = [1, 1]  # 表头所在列数
CLASS_INFO_COLS = [1, 2, 3, 4, 2]  # 班级基本信息所在列数
RANK_COLS = [1, 2, 3, 4]  # 成绩排名所在列数

# 初始化输出文件
output_wb = openpyxl.Workbook()
output_ws = output_wb.active
output_ws.append(['序号', '班级编号', '教师姓名', '班级人数', '班长', '学号', '学生姓名', '成绩'])

# 遍历文件夹中的Excel文件
for filename in tqdm(os.listdir(BASE_DIR)):
    if not filename.endswith('.xlsx'):
        continue
    
    # 打开文件
    filepath = os.path.join(BASE_DIR, filename)
    wb = openpyxl.load_workbook(filepath)
    
    # 遍历sheet
    for i, sheet_name in enumerate(SHEET_NAMES):
        ws = wb[sheet_name]
        
        # 获取表头
        header_row = HEADER_ROWS[i]
        header_col = HEADER_COLS[i]
        header = [cell.value for cell in ws[header_row] if cell.value]
        
        # 获取班级基本信息
        if sheet_name == '基本信息':
            class_info = [ws.cell(row=header_row+1, column=col).value for col in CLASS_INFO_COLS]
        
        # 获取成绩排名
        elif sheet_name == '成绩排名':
            for row in range(header_row+1, ws.max_row+1):
                rank = [ws.cell(row=row, column=col).value for col in RANK_COLS]
                output_ws.append([output_ws.max_row, *class_info, *rank])
    
    wb.close()

# 保存输出文件
output_wb.save(OUTPUT_FILE)

这还不是最厉害的

三、意外的解释

更令人惊讶的是还会对代码进行解释,这就不得了了。接下来看看GPT对它所生成代码的解释:
解释一下代码的主要部分:

  1. 第1行导入了必要的模块,其中os用于文件操作,openpyxl用于读写Excel文件,tqdm用于显示进度条。
  2. 第5-9行定义了常量,包括文件夹路径、输出文件路径、sheet名称等。
  3. 第12-19行初始化输出文件,创建一个新的Excel文件,并在第一个sheet中添加表头。
  4. 第22-42行遍历文件夹中的Excel文件,打开每个文件并遍历其中的sheet。
  5. 第25-27行判断当前sheet是班级基本信息还是成绩排名,分别获取表头和班级基本信息。
  6. 第30-37行在成绩排名sheet中遍历每一行,获取学生的成绩信息,并将班级基本信息和成绩信息合并到输出文件中。
  7. 第40-41行关闭当前文件。
  8. 第44-46行保存输出文件。
    其中使用了tqdm模块来显示进度条,可以让程序更加友好。如果没有安装该模块,可以使用以下命令进行安装:
pip install tqdm

这个效果非常不错了,如果运行上述代码有误,还可以复制错误提示让GPT分析并解决问题,可以说是保姆级别的开发助手了。

四、ChatGPT改用Java编写代码

本来到这里视频里up主就结束的,我又想了一下,能否用Java语言实现出来,于是就开始给GPT命令,很简单,只需把需求描述里的Python改为Java即可:
改为Java语言编写代码

生成代码如下:

import java.io.File;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;

public class ExcelMerger {
   

    public static final String BASE_DIR = "path/to/folder"; // 文件夹路径
    public static final String OUTPUT_FILE = "path/to/output.xlsx"; // 输出文件路径
    public static final String[] SHEET_NAMES = {
   "基本信息", "成绩排名"}; // sheet名称
    public static final int[] HEADER_ROWS = {
   0, 0}; // 表头所在行数
    public static final int[] HEADER_COLS = {
   0,<
### 实现 Excel 与 ArcMap 的连接和数据交互 #### 使用 Microsoft Excel 表格作为 ArcGIS 数据源 在日常工作中,Microsoft Excel 是最常用的属性数据记录工具之一。Excel 表可以直接在 ArcGIS 中打开并使用,这使得两者之间的数据交换变得非常方便[^1]。 为了将 Excel 文件中的数据加载到 ArcMap 中: - **添加 Excel 表至 ArcMap** 可以通过拖放的方式或者利用“Add Data”按钮来完成这一过程。一旦文件被加入项目中,即可像其他任何表格一样对其进行查询、分析以及可视化操作。 - **在 ArcCatalog 中注册 Excel 表** 用户还可以选择在 ArcCatalog 内浏览并预览这些电子表格的内容,在此之后便能轻松地将其纳入地理信息系统 (GIS) 工作流之中。 #### 属性表基本操作支持 表格对于 GIS 来说至关重要,因为它们承载着地图背后的属性信息。因此,掌握如何有效地管理和操作这类资源非常重要。具体来说,应该学会执行如下任务:添加新列(字段)、修改现有条目数值、移除不必要的部分;更重要的是要学会把来自不同格式的数据集——比如 EXCEL 或者 CSV 文件转换成可以在地图上显示出来的地理位置点,并进一步构建线条乃至多边形区域[^2]。 #### 利用 AI 技术增强功能 随着技术的发展,人工智能也开始融入到了这个领域当中。例如,借助于自然语言处理能力强大的 ChatGPT 和专业的地理信息系统平台 ArcGIS 结合起来,则可以更高效便捷地完成诸如从文本文件读取坐标信息自动生成几何对象这样的工作流程。不仅如此,还能实现更加复杂的空间数据分析任务,如批量导入导出数据库记录、改变矢量要素类型或是合并多个图层等等[^3]。 ```python import arcpy from arcgis.features import GeoAccessor, GeoSeriesAccessor # 设置工作空间环境变量 arcpy.env.workspace = "C:/data" # 将 Excel 转换为 shapefile 示例代码 in_table = r"C:\path\to\your\spreadsheet.xlsx" out_location = r"C:\output\location" out_name = "points.shp" spatial_reference = arcpy.SpatialReference(4326) # 执行 Table To Point 函数 arcpy.management.XYTableToPoint(in_table, out_location + "\\" + out_name, "LONGITUDE", "LATITUDE", spatial_reference=spatial_reference) ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

川和流息

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值