表格合并脚本怎么写?

wen 实用脚本 48

本文目录导读:

表格合并脚本怎么写?

  1. 场景一:Excel 文件合并(多个文件 -> 一个文件)
  2. 场景二:同一张 Excel 表的 Sheet 合并(多个Sheet -> 一个Sheet)
  3. 场景三:HTML 表格合并(前端 / 爬虫 / JavaScript)
  4. 场景四:CSV 文件批量合并(命令行 / Linux)
  5. 场景五:数据库表合并(SQL)
  6. 需要我帮你写更具体的脚本吗?

“表格合并”在不同的场景下实现方式完全不同,为了给你最准确的答案,请先确认你的具体场景。

我整理了最常见集中场景的脚本写法,你可以直接参考:

Excel 文件合并(多个文件 -> 一个文件)

工具:Python + Pandas 库
需求:将 销售1月.xlsx销售2月.xlsx 等结构相同的表格纵向堆叠。

import pandas as pd
import os
# 设置存放Excel的文件夹路径
folder_path = "./excel_files/"  
# 获取所有.xlsx文件
all_files = [f for f in os.listdir(folder_path) if f.endswith('.xlsx')]
# 用于存储所有DataFrame的列表
df_list = []
for file in all_files:
    file_path = os.path.join(folder_path, file)
    # 读取Excel文件
    df = pd.read_excel(file_path)
    df_list.append(df)
# 纵向合并(行合并),ignore_index=True 重置索引
merged_df = pd.concat(df_list, ignore_index=True)
# 保存合并后的结果
merged_df.to_excel("合并结果.xlsx", index=False)
print("合并完成!")

同一张 Excel 表的 Sheet 合并(多个Sheet -> 一个Sheet)

工具:Python + Pandas / Openpyxl
需求:Excel工作簿内有 Sheet1、Sheet2、Sheet3,合并为一张总表。

import pandas as pd
file_path = "数据源.xlsx"
# 读取所有Sheet
all_sheets = pd.read_excel(file_path, sheet_name=None)  # 返回一个字典
df_list = []
for sheet_name, df in all_sheets.items():
    print(f"正在处理Sheet: {sheet_name}")
    df_list.append(df)
merged_df = pd.concat(df_list, ignore_index=True)
merged_df.to_excel("总表.xlsx", index=False)

HTML 表格合并(前端 / 爬虫 / JavaScript)

需求:网页上有多个 <table>,想把它们合并成一个表格。

// 适用于浏览器控制台或JS文件
function mergeTables(selector) {
    // 获取所有符合选择器的表格
    const tables = document.querySelectorAll(selector);
    if (tables.length < 2) return;
    // 以第一个表格为主体
    const targetTable = tables[0];
    for (let i = 1; i < tables.length; i++) {
        const rows = tables[i].querySelectorAll('tr');
        // 跳过第一个表格的标题行(可自定义)
        const startIndex = (i === 1) ? 0 : 0;
        for (let j = startIndex; j < rows.length; j++) {
            // 将后面的表格的行追加到目标表格
            targetTable.appendChild(rows[j].cloneNode(true));
        }
        // 可选:隐藏或删除原来的表格
        // tables[i].style.display = 'none';
        tables[i].remove(); // 直接移除
    }
    console.log('表格合并完成');
}
// 使用:合并页面上所有 class 为 data-table 的表格
// mergeTables('.data-table');

CSV 文件批量合并(命令行 / Linux)

需求:当前目录下所有 .csv 文件合并成一个(无语法区别,纯追加行)。

# 方法1:跳过每个文件的表头(只保留第一个文件的表头)
head -1 第一个文件.csv > 合并结果.csv
tail -n +2 *.csv >> 合并结果.csv
# 方法2:使用 awk 自动处理(推荐)
awk 'FNR==1 && NR!=1 {next} {print}' *.csv > 合并结果.csv

数据库表合并(SQL)

需求:两个结构相同的历史表合并到一张表。

-- 假设表A是旧表,表B是新数据,合并到表A
INSERT INTO 表A (列1, 列2, 列3)
SELECT 列1, 列2, 列3 FROM 表B;
-- 或者创建一张新表
CREATE TABLE 合并表 AS
SELECT * FROM 表A
UNION ALL
SELECT * FROM 表B;

需要我帮你写更具体的脚本吗?

如果以上没有覆盖你的场景,请补充以下信息:

  • 表格格式:Excel / CSV / Word / HTML / 数据库 / 其他
  • 合并方向:纵向(追加行)还是横向(追加列,如 VLOOKUP 式合并)
  • 合并条件:按行号合并,还是按某一列作为键值(如按“ID”列匹配合并)
  • 你熟悉的工具:Python / JavaScript / VBA / Shell / SQL

告诉我这些,我可以给你一个可以直接运行的脚本

抱歉,评论功能暂时关闭!