Excel——多个Sheet页合并成一个

这段代码展示了如何使用Python的xlrd和pandas库读取多个Excel工作表,并将它们合并成一个大的DataFrame。首先,通过xlrd打开Excel文件并获取所有工作表的名称,然后遍历每个工作表,使用pd.read_excel读取并追加到总数据框中。最后,将合并后的数据保存到新的Excel文件中,创建了一个名为'NEWDATA'的新工作表。
摘要由CSDN通过智能技术生成

 

import xlrd
import pandas as pd
from  pandas import DataFrame
from openpyxl import load_workbook

excel_name = '文件路径/文件名.xlsx'  #表格地址+表格名
wb = xlrd.open_workbook(excel_name) 
# 获取workbook中所有的表格
sheets = wb.sheet_names()
# print(sheets)

# 循环遍历所有sheet
alldata = DataFrame()
for i in range(len(sheets)):
    df = pd.read_excel(excel_name, sheet_name=i, index=False, encoding='utf8', dtype='str')    
    alldata = alldata.append(df)
#查看dataframe
#print (alldata)

#保存为新的sheet,首先新建sheet,合并后的数据保存到新sheet中
#可保存在一个文件下,需要另存的,要在本地新建文件
writer = pd.ExcelWriter('文件路径/合并数据.xlsx',engine='openpyxl')
book = load_workbook(writer.path)
writer.book = book

#利用dataframe.to_excel保存合并后的数据到新的sheet
alldata.to_excel(excel_writer=writer,sheet_name="NEWDATA")#生成新的sheet命名为NEWDATA
writer.save()
writer.close()

 

可通过使用 Apache POI 库来实现。首先,你需要创建一个新的 workbook 和 sheet,然后使用循环逐个复制每个 sheet 的行和单元格到新的 sheet 中。以下是一个简单的代码示例: ```java // 创建新的 workbook 和 sheet Workbook newWorkbook = new XSSFWorkbook(); Sheet newSheet = newWorkbook.createSheet("Merged"); // 初始化变量 int rowCount = 0; // 获取原始 workbook Workbook oldWorkbook = WorkbookFactory.create(new FileInputStream("path/to/your/file.xlsx")); // 遍历每个 sheet for (int i = 0; i < oldWorkbook.getNumberOfSheets(); i++) { Sheet oldSheet = oldWorkbook.getSheetAt(i); // 遍历每行并复制到新的 sheet for (int j = 0; j <= oldSheet.getLastRowNum(); j++) { Row oldRow = oldSheet.getRow(j); Row newRow = newSheet.createRow(rowCount++); // 遍历每个单元格并复制到新的行中 for (int k = 0; k < oldRow.getLastCellNum(); k++) { Cell oldCell = oldRow.getCell(k); Cell newCell = newRow.createCell(k); // 根据单元格类型复制单元格 switch (oldCell.getCellTypeEnum()) { case STRING: newCell.setCellValue(oldCell.getStringCellValue()); break; case NUMERIC: newCell.setCellValue(oldCell.getNumericCellValue()); break; case BOOLEAN: newCell.setCellValue(oldCell.getBooleanCellValue()); break; case FORMULA: newCell.setCellFormula(oldCell.getCellFormula()); break; } } } } // 保存新的 workbook FileOutputStream outputStream = new FileOutputStream("path/to/your/new/file.xlsx"); newWorkbook.write(outputStream); outputStream.close(); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

樱缘之梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值