我想合并格式相同但数值不同的excel文件,生成的excel文件已损坏

问题描述 投票:0回答:1

当我尝试合并 Excel 文件时,空格和颜色无法正确合并。我上传的Excel文件中的格式是相同的标题等。只是数值不同。但是创建的excel文件是嵌套的或者不完整的。

如果我尝试组合的 Excel 文件中的数值位置匹配,我希望收集并打印结果。如果没有与其他excel文件匹配的数据,则应按原样写入。但格式必须相同。我对Exceljs库了解不多,到目前为止我只导出了json数据。

node.js excel merge exceljs
1个回答
0
投票

要合并格式相同但数值不同的Excel文件,并确保空格、颜色等格式正确保留,可以使用Python中的

pandas
库。以下是实现此目标的分步指南:

  1. 读取 Excel 文件:将 Excel 文件加载到 pandas DataFrames 中。
  2. 合并 DataFrames:根据匹配的列对齐 DataFrames。
  3. 对值求和:对适用的数值进行求和。
  4. 保留格式:确保写回 Excel 时保留原始格式。

这是一个完整的示例:

第1步:安装必要的库

首先,确保安装了必要的库。如果您还没有安装它们,您可以使用 pip 安装它们:

pip install pandas openpyxl

第 2 步:读取并合并 Excel 文件

import pandas as pd
import openpyxl

# Function to read Excel files
def read_excel(file_path):
    return pd.read_excel(file_path, engine='openpyxl')

# Read the Excel files
file1 = 'path_to_your_first_excel_file.xlsx'
file2 = 'path_to_your_second_excel_file.xlsx'

df1 = read_excel(file1)
df2 = read_excel(file2)

# Merge the DataFrames, summing numeric columns where necessary
merged_df = df1.combine_first(df2).fillna(0)
numeric_columns = merged_df.select_dtypes(include='number').columns
merged_df[numeric_columns] = df1[numeric_columns].add(df2[numeric_columns], fill_value=0)

# Display the merged DataFrame
print(merged_df)

第3步:写回Excel

要保留格式,我们需要使用

openpyxl
库。

# Function to write DataFrame to Excel while preserving formats
def write_to_excel_with_formatting(df, template_file, output_file):
    # Load the template Excel file
    wb = openpyxl.load_workbook(template_file)
    ws = wb.active

    # Write DataFrame to the worksheet, keeping the formatting
    for r_idx, row in df.iterrows():
        for c_idx, value in enumerate(row):
            cell = ws.cell(row=r_idx+2, column=c_idx+1, value=value)  # +2 to account for header
            # Optionally, you can apply formatting to the cell here

    # Save the new Excel file
    wb.save(output_file)

# Specify the template file and output file
template_file = 'path_to_your_template_excel_file.xlsx'
output_file = 'path_to_your_output_excel_file.xlsx'

# Write the merged DataFrame to Excel, preserving formatting
write_to_excel_with_formatting(merged_df, template_file, output_file)

说明

  • 读取 Excel 文件
    read_excel
    函数将 Excel 文件加载到 pandas DataFrames 中。
  • 合并 DataFrames
    combine_first
    方法合并两个 DataFrame,填充第二个 DataFrame 中的缺失值。使用
    add
    方法对数值进行求和。
  • 使用格式写入 Excel:write_to_excel_with_formatting
     函数加载具有所需格式的 Excel 模板文件,并将合并的 DataFrame 写入该文件,同时保留原始格式。
通过执行这些步骤,您应该能够合并具有相同格式和不同数值的多个 Excel 文件,同时保留原始格式。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.