Tag: apache poi

在Apache POI中的Excel表单之间切换

我正在使用Apache POI来生成Excel表(.xls格式),并使用下面的代码片断来创build链接到同一文档/工作簿中不同工作表的超链接。 HSSFSheet summarySheet = workbook.createSheet("Target Sheet"); Hyperlink targetLink = createHelper.createHyperlink(Hyperlink.LINK_DOCUMENT); targetLink.setAddress("'Target Sheet'!A1"); 我正在创build多个工作表,单击“超链接”时将显示相应的工作表。 但是,我很难遍历我用上面的代码创build的不同的工作表。 我需要使用数据库中的数据填充这些表单,但是我不知道如何在这些表单之间切换。 任何帮助,将不胜感激。 请在你投降之前告诉我/我的问题是否有任何问题。 谢谢!

使用apache poi修改现有的excel

当我修改服务器中的现有excel文件并复制到本地机器并打开它时, excel could not open because some content is unreadable, do you want to open and repair this workbook? 以下是我的代码。 有人可以build议我如何避免这种情况? File f = new File(directory+"users.xlsx"); FileInputStream fileInputStream = new FileInputStream(f); workbook = new XSSFWorkbook(fileInputStream); sheet = workbook.getSheetAt(0); Row row = sheet.getRow(4); for(int i = 0; i<5; i++) { Cell cell = row1.getCell(i); cell.setCellValue(formattedDate); cell.setCellStyle(normalStyle); […]

Apache POI在空电子表格中看到列?

我有一个空的电子表格,但是当我用Apache POI(版本3.10)访问它时,它说它有1024列和20个物理列。 我真的删除了所有的单元格,只剩下一些格式,但没有内容。 如果我用LibreOffice Calc(版本4.1.3.2)删除一些列,列数只会增加 ! 这是怎么回事? 有没有一种可靠的方法来获得真正的列数(或连续的单元格)? import java.net.URL; import org.apache.poi.ss.usermodel.*; public class Test { public static void main(final String… args) throws Exception { final URL url = new URL("http://aditsu.net/empty.xlsx"); final Workbook w = WorkbookFactory.create(url.openStream()); final Row r = w.getSheetAt(0).getRow(0); System.out.println(r.getLastCellNum()); System.out.println(r.getPhysicalNumberOfCells()); } }

如何保存从Java创build的Excel文档

我觉得这很愚蠢,但现在我正在使用Apache POI写入Excel文档。 但是到现在为止,每次运行程序都不会把数据保存到excel文件中,这意味着下次运行时,以前的数据不在那里。 是否有一行代码用于保存试用期间收集的所有信息,以便在将来的试用中仍然存在?

在SIT上运行时出现Apache POI错误

我一直在Java 1.5上开发一个SpringSource 3.2项目。 这个项目的目的是在excel中parsing数​​据后,把excel文件输出到我们自己格式的另一个文件中。 在我的本地开发环境(一台i5,Windows 7机器)上运行时,进程运行得很好,结果如预期。 但是当我尝试在我们的SIT(这是一个旧的Windows Server 2003 SP2 x64)上运行它时,我得到以下exception: 2014-04-24 14:18:16:574 ERROR [main] – AbstractStep | Encountered an error executing the step java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlOptions at org.apache.poi.POIXMLDocumentPart.<clinit>(POIXMLDocumentPart.java:43) at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:62) at com.hsbc.gbm.dml.batch.item.file.ExcelFileItemReader.doOpen(ExcelFileItemReader.java:118) at org.springframework.batch.item.support.AbstractItemCountingItemStreamItemReader.open(AbstractItemCountingItemStreamItemReader.java:134) at org.springframework.batch.item.file.MultiResourceItemReader.read(MultiResourceItemReader.java:105) at org.springframework.batch.core.step.item.SimpleChunkProvider.doRead(SimpleChunkProvider.java:90) at org.springframework.batch.core.step.item.SimpleChunkProvider.read(SimpleChunkProvider.java:148) at org.springframework.batch.core.step.item.SimpleChunkProvider$1.doInIteration(SimpleChunkProvider.java:108) at org.springframework.batch.repeat.support.RepeatTemplate.getNextResult(RepeatTemplate.java:367) at org.springframework.batch.repeat.support.RepeatTemplate.executeInternal(RepeatTemplate.java:214) . . . 有没有人有任何想法,为什么发生这种情况? 我们使用Maven&Spring来pipe理我们的依赖关系。

Apache POI和颜色

我有一些与Apache POI的问题,一些帮助将是不错的! 我想删除Excel工作表的子部分中的颜色。 要做到这一点,我尝试的第一件事就是渲染要清理的单元格(比方说只有第一行),并将它们的颜色设置为白色: cell.getCellStyle().setFillForegroundColor(IndexedColors.WHITE.index); 但是,如果我这样做,一些没有渲染的细胞(比如说第二行)的颜色也会变成白色的细胞。 这很奇怪,因为被改变的单元格没有相同的前景色,所以我认为它们会有不同的风格。 所以我试了另一种方式: CellStyle style = workbook.createCellStyle(); style.setFillForegroundColor(IndexedColors.WHITE.index); cell.setCellStyle(style); 这个想法是为了避免改变Excel工作表中不同单元格可能共有的样式。 其实,它解决了颜色问题,但如果我这样做,我放松了Excel工作表中的不同风格,而我只想删除一些颜色… 我正在使用一个通用的工作簿,我正在阅读一个xlsx(与xls相同的问题)你知道该怎么做吗? 很多,问候,

通过apache-poi更改Excel中单元格的值

我正在尝试更改.xls文档中的单元格的值。 在.xls文件中,我只有1个单元格 – A1里面有abc值。 我的代码: File fo = new File("D:\\TMP\\Zeszyt1.xls"); HSSFWorkbook a = new HSSFWorkbook(new FileInputStream(fo)); HSSFSheet my_sheet = a.getSheetAt(0); HSSFRow my_row = my_sheet.getRow(0); HSSFCell myCell; myCell = my_row.getCell(0); myCell.setCellValue("NEW VALUE"); 如何提交此更改? 当我打开.xls文件,我仍然有A1内的abc值。

使用java POI编写一个巨大的数据二维数组以Excel文件

我有一个约16000 X 16000二维数组,我想出口这些logging到Excel文件。 目前我可以在短时间内输出多达1000个X1000的2Darrays。 但是,当我增加大小的数组例如3000 X 3000我的程序运行了很长时间没有返回任何数据。 我要求帮助导出整个二维数组到Excel文件,并使用POI。 我的示例代码来导出数据,其中一个如果参数是我的二维数组。 公共类exportData { public static void exportDataToExcel(String fileName, String tabName, int[][] data) throws FileNotFoundException, IOException { //Create new workbook and tab Workbook wb = new XSSFWorkbook(); FileOutputStream fileOut = new FileOutputStream(fileName); Sheet sheet = wb.createSheet(tabName); //Create 2D Cell Array Row[] row = new Row[data.length]; Cell[][] cell = […]

excel字段的值越来越3.0E9,我需要3000000000时,试图parsing

我有一个Excel上传,其中有一个列的材料id.That列包含字母数字值,但是当我试图上传这个文件的值在jsp页面上传的列正在采取一个意想不到的E,也采取了这个数字的小数我是使用Apache POI来parsingexcel。到目前为止,我已经完成了 while(rowIterator.hasNext()) { boolean isValidentry=true; System.out.println("Row number =" + (i+1)); Row row = rowIterator.next(); CategoryObject categoryObject = new CategoryObject(); categoryObject.setCode(""); if(row.getCell(0)!=null && !"".equals(row.getCell(0).toString().trim())){ //Part Number System.out.println("Get Cell 0 >>>>" +row.getCell(0).toString()); categoryObject.setCode(row.getCell(0).toString().trim()); 问题是我得到3.0E9 ,我需要30 3000000000 。 categoryObject.setCode作为String字段。该列负责材料ID。

无法访问NPOIFSFileSystem

我想读取xls和xlsx文件。 我使用这一行来访问我的工作簿。 myWorkBook = WorkbookFactory.create(file); 我的构buildgradle看起来像这样:apply plugin:'com.android.application' android { compileSdkVersion 19 buildToolsVersion "19.1.0" defaultConfig { applicationId "com.example.application" minSdkVersion 8 targetSdkVersion 19 versionCode 1 versionName "1.0" } buildTypes { release { runProguard false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/DEPENDENCIES.txt' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/LICENSE' exclude 'META-INF/DEPENDENCIES' exclude 'META-INF/notice.txt' exclude 'META-INF/license.txt' […]