文件之间的克隆表
我有三个或更多 Excel 文件,其中包含不同的工作表,我需要创建一个新的空白文件,并将该工作表的副本(或克隆)放入新文件中,并将它们按照我需要的顺序放置,以便我可以填写相应的表格与数据。
如何使用 Jakarta POI (XSSFWorkbook
) 执行此操作?
I have three or more excel files with different sheets among them and I need to create a new blank file with a copy (or clone) that sheets into the new file and place them in the order I need so I can fill out the respective forms with data.
How can I do this by using Jakarta POI (XSSFWorkbook
)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
首先,我认为你的意思是 Apache POI - 它已经不是 Apache Jakarta POI 好几年了...
就将工作表从一个工作簿复制到另一个工作簿而言,这是可以完成的,但需要一些编码。首先,您需要识别您使用的单元格样式,并克隆它们。确保跟踪哪个源单元格样式转到哪个目标单元格样式,因为您不想继续重新创建,否则您将达到限制! CellStyle.cloneStyleFrom(CellStyle) 是您需要的方法。
然后,对于每个源工作表,在目标工作簿中创建一个工作表。循环所有源行,创建新的目标行。然后循环单元格,按单元格类型切换,获取适当的值并设置它。冲洗并重复!
First up, I think you mean Apache POI - it hasn't been Apache Jakarta POI for quite a few years now...
In terms of copying sheets from one workbook to another, it can be done, but it will require some coding. First you'll want to identify the cell styles you use, and clone those across. Make sure you keep track of which source Cell Style goes to which destination Cell Style, as you don't want to keep re-creating or you'll hit the limit! CellStyle.cloneStyleFrom(CellStyle) is the method you'll want.
Then, for each source sheet, create a sheet in the target workbook. Loop over all the source rows, creating new target ones. Then loop over the cells, switch by cell type, grab the appropriate value and set it. Rinse and repeat!
FileOutputStream os = new FileOutputStream("differnetFileName")
readWorkbook.write(os);
我猜我们可以使用 diff 文件名对操作系统进行写入操作。
FileOutputStream os = new FileOutputStream("differnetFileName")
readWorkbook.write(os);
guess we can make use of write operation to OS with diff file name will work .
这是我将工作表从一个工作簿复制到另一个工作簿的实现。我按照加格拉瓦尔的描述做了一切。这个解决方案对我有用。如果工作表没有表格等,则此代码将起作用。如果工作表包含简单文本(字符串、布尔值、整数等)、公式,则此解决方案将起作用。
如果您的要求是复制整张纸而不留下或添加任何内容。我认为消除过程比上面的代码更好更快。而且您不必担心丢失公式、绘图、表格、样式、字体等。
This is my implementation of copying sheets from one workbook to another. I did everything as described by Gagravarr. This solution works for me. This code will work if the sheets don't have tables, etc. If the sheets contain simple text (String, boolean, int etc), formulas, this solution will work.
If your requirement is to copy full sheets without leaving or adding anything. I think The process of elimination works better and faster then the above code. And you don't have to worry about losing formulas, drawings, tables, styles, fonts, etc.