批量操作Execl工作薄

批量操作Execl工作薄
打开文件夹里的工作薄,
将工作薄里的 对账单工作表上的透视表格点击共计金额单元格后,生成产品明细工作表
再将对账单工作表上的透视表格转化为普通表格,并套用表格模式
最后保存关闭

img

img

img

你可以用审阅-宏
录制一个宏,它自动产生单个文件操作的vba代码
然后在vb里面照着调用,先dir遍历文件,依次打开,操作

参考 https://zhuanlan.zhihu.com/p/30140409

要实现批量操作Excel工作薄,可以使用Python的第三方库openpyxl来处理Excel文件。确保你已经安装了openpyxl库,如果没有安装,可以通过以下命令来安装:
pip install openpyxl
下面是一个示例代码,演示如何实现上述需求:


import os
from openpyxl import load_workbook
from openpyxl.utils.cell import get_column_letter

def create_product_details_sheet(pivot_sheet):
    # 生成产品明细工作表
    product_details_sheet = pivot_sheet._new_sheet("产品明细")
    headers = [cell.value for cell in pivot_sheet['1']]
    for col_num, header in enumerate(headers, 1):
        product_details_sheet[get_column_letter(col_num) + '1'] = header
    return product_details_sheet

def convert_pivot_to_table(pivot_sheet):
    # 将透视表格转化为普通表格,并套用表格模式
    pivot_table = pivot_sheet._tables[0]
    data_range = pivot_table.ref
    pivot_sheet.unmerge_cells(data_range)
    for row in pivot_sheet[data_range]:
        for cell in row:
            if cell.row == pivot_table.header_row:
                cell.style = "Pandas"
            else:
                cell.value = cell.internal_value
                cell.style = "Normal"

def process_workbook(file_path):
    try:
        # 打开工作薄
        wb = load_workbook(file_path, keep_vba=True)
        for sheet_name in wb.sheetnames:
            sheet = wb[sheet_name]
            if sheet.sheet_state == 'hidden':
                continue
            pivot_tables = [obj for obj in sheet._tables if obj.table_type == "PivotTable"]
            if pivot_tables:
                for pivot_table in pivot_tables:
                    product_details_sheet = create_product_details_sheet(sheet)
                    convert_pivot_to_table(sheet)
        # 保存修改并关闭工作薄
        wb.save(file_path)
        wb.close()
    except Exception as e:
        print(f"Error processing the workbook: {e}")

if __name__ == "__main__":
    folder_path = "path/to/your/excel/files/folder"
    for filename in os.listdir(folder_path):
        if filename.endswith(".xlsx"):
            file_path = os.path.join(folder_path, filename)
            process_workbook(file_path)

要实现批量操作Excel工作薄并执行上述步骤,您可以使用Python中的第三方库,如pandas和openpyxl。以下是一个示例代码,演示如何自动化这些任务:

import os
import pandas as pd
from openpyxl import load_workbook

# 设置文件夹路径
folder_path = 'path/to/your/folder'

# 遍历文件夹中的每个文件
for filename in os.listdir(folder_path):
    if filename.endswith('.xlsx'):
        file_path = os.path.join(folder_path, filename)
        print(f"正在处理文件:{filename}")
        
        # 打开工作薄
        workbook = load_workbook(file_path)
        
        # 处理对账单工作表
        sheet_name = '对账单'
        if sheet_name in workbook.sheetnames:
            # 生成产品明细工作表
            df = pd.read_excel(file_path, sheet_name=sheet_name)
            pivot_table = df.pivot_table(values='金额', index='产品', aggfunc='sum')
            pivot_table.to_excel(
                workbook,
                sheet_name='产品明细',
                startrow=0,
                startcol=0
            )
            
            # 转换透视表为普通表格并套用表格模式
            sheet = workbook[sheet_name]
            target_cell = 'A1'  # 透视表共计金额所在的单元格
            pivot_table_range = sheet[target_cell].expand('table')
            table = pd.DataFrame(sheet[pivot_table_range])
            sheet.delete_rows(pivot_table_range.min_row, pivot_table_range.max_row)
            sheet.append(pd.DataFrame(table))
            sheet.auto_filter.ref = sheet.dimensions  # 套用表格模式
        
        # 保存和关闭工作薄
        workbook.save(file_path)
        workbook.close()

print("所有文件处理完成。")

请注意,您需要安装所需的Python库(pandas和openpyxl),可以使用pip进行安装:

pip install pandas openpyxl
在代码中,您需要将'path/to/your/folder'替换为包含要处理的Excel工作薄的文件夹的实际路径。代码将遍历文件夹中的每个.xlsx文件,并在对账单工作表上执行所需的操作,最后保存并关闭文件。

请注意,根据实际情况,您可能需要根据工作薄中的具体结构和数据进行一些调整。此外,代码仅支持.xlsx格式的文件,如果您的文件是.xls格式,需要使用xlrd库进行读取

Excel工作表级别的4个批量操作
可以参考下
https://baijiahao.baidu.com/s?id=1729785399240215980&wfr=spider&for=pc
https://wenku.baidu.com/view/3513853d6f175f0e7cd184254b35eefdc8d3159b.html?_wkts_=1689820029804&bdQuery=%E6%89%B9%E9%87%8F%E6%93%8D%E4%BD%9CExecl%E5%B7%A5%E4%BD%9C%E8%96%84

要批量操作Excel工作簿,可以使用编程语言如Python来编写一个脚本,以实现自动化的操作。
或者参考以下文章的解答:
学会4个批量操作Excel工作表的小技巧:https://baijiahao.baidu.com/s?id=1705811302286986452&wfr=spider&for=pc

可以通过python来编写脚本代码实现

vb或者python可以做

这个内容回答超级棒:


我看了看真的超棒,讲得特别详细

回答部分参考、引用ChatGpt以便为您提供更准确的答案:

要批量操作Excel工作薄,按照您的描述,需要执行以下步骤:

  1. 打开文件夹:使用代码或脚本,打开包含要操作的Excel工作薄的文件夹。
  2. 循环处理工作薄:对于文件夹中的每个工作薄,执行以下操作: a. 打开工作薄:使用代码或脚本,打开当前要处理的工作薄。 b. 定位到对账单工作表:通过代码或脚本,定位到对账单工作表。 c. 点击共计金额单元格:使用代码或脚本,在对账单工作表上找到透视表格,定位到共计金额单元格,并模拟点击操作。 d. 生成产品明细工作表:使用代码或脚本,在当前工作薄中生成一个新的工作表,命名为产品明细工作表,并从透视表格中提取数据填充到该工作表中。 e. 转化为普通表格:通过代码或脚本,将对账单工作表上的透视表格转化为普通表格。 f. 套用表格模式:使用代码或脚本,将转化后的普通表格套用表格样式或模式。 g. 保存并关闭工作薄:使用代码或脚本,保存对工作薄的修改,并关闭工作薄。
  3. 循环处理所有工作薄后,完成批量操作。

具体的实现方式取决于您使用的编程语言和Excel操作库。您可以使用Python的openpyxl、Java的Apache POI、或者其他适用于您编程语言的Excel操作库来实现上述步骤。

需要注意的是,在实际编程过程中,您需要仔细处理文件路径、异常情况和文件关闭等细节。