好的,鱼油,让我们来解决这个问题吧!Python处理Excel文件可以说是“拿手绝活”了,咱们可以借助`pandas`库来实现。以下是一个基本的思路,希望用通俗易懂和幽默的方式让你觉得“哈哈,这就是我想要的!”
### 简单步骤
1. **装好工具**:安装pandas和openpyxl库
2. **搞定路径**:找到所有Excel文件
3. **暖手操作**:读取Excel文件中的某些列
4. **排兵布阵**:将这些列填充到新的Excel,注意不要“超载”哦
### 开始动手
首先,确保你已经安装了`pandas`和`openpyxl`:pip install pandas openpyxl
接下来,写个舒服的小脚本!
import os
import pandas as pd
def extract_columns_to_new_excel(file_paths, columns_to_extract, output_file):
# 初始化一个空的DataFrame
all_data = pd.DataFrame()
for file_path in file_paths:
# 读取Excel文件
df = pd.read_excel(file_path)
# 提取我们需要的列
selected_columns = df[columns_to_extract]
# 将选定的列附加到all_data
all_data = pd.concat([all_data, selected_columns], axis=1)
# 确保不会“超载”:分割列为多份
max_columns = 10 # 假设每个工作表最多有10列
num_of_splits = (all_data.shape[1] // max_columns) + 1
with pd.ExcelWriter(output_file) as writer:
for split_num in range(num_of_splits):
start_col = split_num * max_columns
end_col = start_col + max_columns
split_df = all_data.iloc[:, start_col:end_col]
split_df.to_excel(writer, sheet_name=f'Sheet{split_num+1}', index=False)
# 查找文件夹内所有的Excel文件
def find_excel_files(folder_path):
excel_files = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith(".xlsx") or file.endswith(".xls"):
excel_files.append(os.path.join(root, file))
return excel_files
# 设定你的文件夹路径和需要提取的列
folder_path = '你放Excel的文件夹路径'
columns_to_extract = ['Title1', 'Title2', 'Title3'] # 替换为你的实际列标题
output_file = '汇总的Excel.xlsx'
# 执行!
file_paths = find_excel_files(folder_path)
extract_columns_to_new_excel(file_paths, columns_to_extract, output_file)
print("恭喜你,任务搞定了!")
### 一些小解释:
1. **找Excel文件**:`find_excel_files`函数会递归查找文件夹内所有的Excel文件。
2. **阅读与拼接**:`extract_columns_to_new_excel`函数会读取每个文件,选出所需的列拼到最终的DataFrame里。
3. **防止“爆表”**:为了避免输出的Excel表格“超级冗长”,我们将其拆分成多个子工作表,每个最多10列(你可以根据需要调整)。
这段代码就像“万金油”,不仅能及时处理你的任务,还能令你在众人面前显得技艺高超,甚至连Excel都无法跟你抗衡。厉害吧?
"""
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |