public void createReportFile(MultiValueMap MMReport) {
try {
workBook = new XSSFWorkbook();
sheet = workBook.createSheet("REPTRANS_TRN" + count);
AtomicInteger rowCounter = new AtomicInteger();
MMReport.forEach((k, v) -> {
AtomicInteger cellCounter = new AtomicInteger();
Row row = sheet.createRow(rowCounter.incrementAndGet());
row.createCell(cellCounter.getAndIncrement()).setCellValue(k.toString());
List<String> values = (List<String>) v;
values.forEach(value -> {
row.createCell(cellCounter.getAndIncrement()).setCellValue(value.toString());
});
});
fileOutput = new FileOutputStream(getReportFile());
workBook.write(fileOutput);
fileOutput.flush();
fileOutput.close();
++count;
} catch (Exception e) {
System.out.println(e);
}
}
方法创建新文件
public File getReportFile() throws IOException {
File buildFileFolder;
DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
Date date = new Date();
String rootDirectory = "Reports"; //main_folder_name
String dailyFolderName = dateFormat.format(date); //Daily folder name
File dailyFileFolder = new File(rootDirectory + "/" + dailyFolderName);
if (!dailyFileFolder.exists()) {
dailyFileFolder.mkdirs();
POIforgfgWrite.resetCounterValue("buildcounter");
buildNumber = 1;
}
String buildFileName = "RentRun-Build-" + buildNumber;
buildFileFolder = new File(rootDirectory + "/" + dailyFolderName + "/" + buildFileName + ".xlsx");
if (!buildFileFolder.exists()) {
buildFileFolder.createNewFile();
POIforgfgWrite.writeBackCounterValue("buildcounter", buildNumber);
}
return buildFileFolder;
}
您的createreportfile()
方法创建一个新的工作簿实例,在其中创建一个工作表,向其中写入数据,然后关闭并使用name+counter
保存工作表。每次调用CreateReportFile
时,都会创建一个新的单张工作簿。
counter
变量似乎来自类作用域,这可能是您希望工作簿实例成为的对象。还应在关闭工作簿的同一范围内打开工作簿。
我建议您创建一个updateReportFile()
方法,该方法接收预先获得的工作簿实例和要写入的数据。对于工作簿,您应该提供希望更新/创建的OutputStream-object(假设它存在,否则创建一个新的)。
我有一个Excel工作簿,其中包含36个不同的工作表,我每两周收到一次,工作表在所有标签上都有共同的标题,并且每个标签上都有不同的唯一标题,但每条记录都有一个唯一的ID,可以有多个记录。 我要做的是从所有的工作表中提取唯一的id,然后将每个工作表中的数据提取到一个工作表中,其中包含所有的公共标题和唯一标题。 我正在考虑使用下面帖子中的代码将其导入Access。连接表并将其导出回Excel中的一个工
试图从当前工作簿“Create Report.xlsm”中复制工作表名称“Headings Explantions”,该工作簿打开到我要求打开的工作簿中,我得到了下标超出范围的错误
我正试图将所有工作表(7张)从workbook1(wb1)复制到WB2。wb1包含命令按钮,但我不希望它们出现在我的新工作簿中。我正在使用循环将单个工作表从一个工作簿复制到另一个工作簿。但是复制到第二张时出错了。我使用的代码如下:- 循环第一次成功运行,但对于i=2,代码给出错误
问题内容: 我有一个较大的电子表格文件(.xlsx),正在使用python pandas处理。碰巧我需要那个大文件中两个标签中的数据。其中一个标签包含大量数据,另一个标签仅包含几个方形单元格。 当我在 任何 工作表上使用pd.read_excel()时,在我看来整个文件都已加载(不仅仅是我感兴趣的工作表)。因此,当我两次使用该方法(每张纸一次)时,我实际上不得不使整个工作簿被读两次(即使我们仅使用
我对宏是新手,需要帮助。我在一个文件夹中有几个工作簿,每个工作簿有四个工作表。现在我想要一个mocro它复制数据从每个工作簿(工作表明智)和过去在我的主工作簿(工作表明智)意味着数据1应该被粘贴一个在另一个下面在我的主工作簿在工作表1和工作表2分别。*工作簿名称可以是文件夹中的任何东西。有人能帮我完成整个代码吗?我有宏从一张表到我分配的表的数据,但它复制粘贴数据从打开的表,而不是按表名明智的。有人
然后另一个问题是工作簿的名称都不同,所有300个。是否有一个宏可以复制我打开的工作簿,而不是每次都输入实际的名称?