首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用apache (.xlsx)的excel 2007不可读内容

使用apache (.xlsx)的excel 2007不可读内容
EN

Stack Overflow用户
提问于 2013-02-13 15:22:02
回答 1查看 2.4K关注 0票数 3

我在使用apache for excel 2007时遇到了问题,使用XSSF

下面有两个代码片段(肥指)。第一种方法似乎有效,因为工作簿在excel 2007中正确打开,并且有一些更改。

如果我运行第二个代码片段,然后在excel 2007中打开,我会得到一个关于不可读内容的错误。我必须点击一个确认框,然后excel打开我的文件。

为什么第二个代码段会导致此错误?唯一的区别是在第二行中,我试图将所有行从第2行(零索引)移到两行……

我真正想要做的就是删除一些页眉行,然后从文件中删除一些页脚行。我没做什么花哨的事。我猜我误解了API,但我已经和它斗争了一段时间了。

有什么想法吗?另外,我应该移动行,还是移除它们,或者两者的某种组合?

代码语言:javascript
复制
String filename = "C:\\file.xlsx";
FileInputStream file = new FileInputStream( new File(fileName) );

XSSFWorkbook wb = new XSSFWorkbook(file);

XSSFSheet sheet = wb.getSheetAt(0);
int lastRow = sheet.getlastRow();

sheet.shiftRows(1, lastRow, -1);


file.close()
FileOutputStream out = new FileOutputStream(fileName);
wb.write(out);
out.flush();
out.close();

代码语言:javascript
复制
String filename = "C:\\file.xlsx";
FileInputStream file = new FileInputStream( new File(fileName) );

XSSFWorkbook wb = new XSSFWorkbook(file);

XSSFSheet sheet = wb.getSheetAt(0);
int lastRow = sheet.getlastRow();

sheet.shiftRows(2, lastRow, -2);


file.close()
FileOutputStream out = new FileOutputStream(fileName);
wb.write(out);
out.flush();
out.close();

编辑:实际上,第一个片段也导致了issue...sometimes?我觉得我做错了什么.有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-18 11:11:20

我也遇到过类似的问题。我认为问题可能在于如何处理意见。在我的例子中,excel文件被Excel报告为“损坏”,每当出现注释时进行转换。Excel修复了文件,并报告它删除了注释部分,其余部分都很好。Excel文件没有注释,但具有相同的处理代码,没有造成任何问题。

很抱歉,这不能解决问题,但也许它提供了一个解决办法。在我的例子中,我以编程方式删除所有评论(丑陋)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14856834

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档