Tag: apache poi

Java将string保存为Excel文件作为URL

嗨,我试图将一个string( http://www.google.com )保存为超链接格式的Excel文件,但string保存为纯文本。

如何使用Apache POI通过Google App Engine读取电子表格?

我一直在使用JXL来处理webapp文件夹内的excel文件。 这适用于开发和生产。 我只是注入一个ServletContext并调用如下所示: Workbook.getWorkbook(new File(servletContext.getRealPath("WEB-INF/myfile.xls")))和JXL可以读取文件并对其进行处理。 我最近切换到在App Engine Servlet中使用Apache POI ,但是我得到一个exception: [ERROR] java.security.AccessControlException: access denied ("java.io.FilePermission" "C:\Users\Drew\IntelliJ\UsavApp\target\UsavAppV7-1.0-SNAPSHOT\WEB-INF\myfile.xlsx" "write") [ERROR] at java.security.AccessControlContext.checkPermission(AccessControlContext.java:372) [ERROR] at java.security.AccessController.checkPermission(AccessController.java:559) [ERROR] at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) [ERROR] at com.google.appengine.tools.development.DevAppServerFactory$CustomSecurityManager.checkPermission(DevAppServerFactory.java:429) [ERROR] at java.lang.SecurityManager.checkWrite(SecurityManager.java:979) [ERROR] at java.io.RandomAccessFile.<init>(RandomAccessFile.java:229) [ERROR] at org.apache.poi.poifs.nio.FileBackedDataSource.newSrcFile(FileBackedDataSource.java:130) [ERROR] at org.apache.poi.poifs.nio.FileBackedDataSource.<init>(FileBackedDataSource.java:46) [ERROR] at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:218) [ERROR] at org.apache.poi.poifs.filesystem.NPOIFSFileSystem.<init>(NPOIFSFileSystem.java:166) [ERROR] at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:278) [ERROR] at org.apache.poi.ss.usermodel.WorkbookFactory.create(WorkbookFactory.java:250) [ERROR] at […]

JAVA apache-poi:在迭代中匹配string,需要将最终值写入特定的行

我正在研究读取excel文件的代码(查看列中的单元格),然后写入类似下表的代码: 我有一个excel文件,看起来像这样: col1 col2 col3 col4 —————————– row1 | 2,3,1 _ 1 w row2 | 3,2,7 _ 2 x row3 | _ _ 3 y row4 | 4,9 _ 4 z 我在第2列写了一些值(使用Apache POI),如下所示: col1 col2 col3 col4 —————————– row1 | 2,3,1 x,y,w 1 w row2 | 3,2,7 y,x 2 x row3 | _ _ 3 […]

使用Apache POI向Excel文件写入来自String的ArrayList的大量数据

我有一个相当大的stringArrayList(约500k以上的项目)。 有没有可能加快写这个数组到Excel文件? 现在需要一段时间,我不知道我是否做了我能做的一切(也许这是.get方法的问题?)。 请参考下面的代码(请不要注意细节 – 这个类仅用于testing目的): import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Tests { private static final String ADDRESS = "./result/file.xlsx"; public static void readAndWriteAData(int counterOfExecutions, List<String> listOfResults) throws IOException{ File file = new File(ADDRESS); if(file.exists()&&!file.isDirectory()){ file.delete(); } @SuppressWarnings("resource") […]

颜色不会被设置为工作簿

我正在使用java工作簿xls,但我无法设置颜色。我使用下面的代码。 CellStyle cellStyle = sheet.getWorkbook().createCellStyle(); cellStyle.setFillBackgroundColor(HSSFColor.DARK_RED.index); Cell celli = row0.createCell((short) i); celli.setCellValue(list.get(i).toString()); celli.setCellStyle(cellStyle); 我正在使用cellstyle,但没有设置颜色。

何时使用rowiterator和迭代器遍历Excel表格的行

阅读Excel电子表格(.xlsx)内容的代码包含在下面。 迭代通过每一行,我使用sheet对象的iterator()方法,这很好。 另外,如果我使用rowIterator()方法,它也适用。 这两个function和什么时候使用哪个function有什么区别? { FileInputStream fis = new FileInputStream(new File("E:\\readexcel.xlsx")); XSSFWorkbook wb = new XSSFWorkbook(fis); XSSFSheet sh = wb.getSheetAt(0); Iterator<Row> rowIterator = sh.iterator(); // sh.rowIterator(); — also works well while(rowIterator.hasNext()){ Row row = rowIterator.next(); Iterator<Cell> cellIterator = row.iterator(); //row.cellIterator();– also works well while(cellIterator.hasNext()){ Cell cell = cellIterator.next(); System.out.print(cell.getStringCellValue()+"\t"); } System.out.println(""); } }

org.apache.poi.POIXMLException目前不支持严格的OOXML,请参阅bug#57699

我想用javaparsing一个Excel文件,所以我使用apache poi库,在这里你是maven的依赖: <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.14</version> </dependency> 这将包括一系列的依赖关系: poi-ooxml-3.14.jar poi-3.14.jar commons-codec-1.10.jar poi-ooxml-schemas-3.14.jar xmlbeans-2.6.0.jar stax-api-1.0.1.jar curvesapi-1.03.jar 当我尝试使用以下代码读取Office 365 Excel文件(.xslx)时: import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelConverter { public static void main(String[] args) throws Exception{ String excelFilePath = "C:/temp/Book1.xlsx"; File myFile = new File(excelFilePath); System.out.println("File exists: " + myFile.exists()); FileInputStream inputStream […]

使用Apache POI将公式单元格转换为Excel中的错误单元格

我正在使用apache poi访问excel,当我使用任何公式,该行正在转换为错误行。 XSSFWorkbook workbook = new XSSFWorkbook("D://Book.xlsx"); XSSFSheet spreadsheet = workbook.getSheetAt(0); XSSFRow row = spreadsheet.createRow(6); XSSFCell cell = row.createCell(4); cell.setCellType(XSSFCell.CELL_TYPE_FORMULA); cell.setCellFormula("LOOKUP(2,1/(A:A<>\"\"),ROW(A:A))"); workbook.setForceFormulaRecalculation(true); FormulaEvaluator evaluator = workbook.getCreationHelper().createFormulaEvaluator(); CellValue cellValue = evaluator.evaluate(cell); switch (cellValue.getCellType()) { case Cell.CELL_TYPE_BOOLEAN: System.out.println("Boolean"); System.out.println(cellValue.getBooleanValue()); break; case Cell.CELL_TYPE_NUMERIC: System.out.println("Num"); System.out.println(cellValue.getNumberValue()); break; case Cell.CELL_TYPE_STRING: System.out.println("String"); System.out.println(cellValue.getStringValue()); break; case Cell.CELL_TYPE_BLANK: System.out.println("Blank"); break; case Cell.CELL_TYPE_ERROR: System.out.println("Error"); […]

该进程无法访问该文件,因为它正在被另一个进程使用

我试图从一张excel文件读取数据,并写入其他同一excel文件的表。我试过这个: FileInputStream file = new FileInputStream(new File("E:\\excel\\input.xlsx")); //Create Workbook instance holding reference to .xlsx file XSSFWorkbook workbook = new XSSFWorkbook(file); //Get first/desired sheet from the workbook XSSFSheet sheet = workbook.getSheetAt(0); //Iterate through each rows one by one Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); //For each row, iterate through all the […]

使用Apache POI获取单元格颜色

我正在尝试学习如何在一个小项目中使用Apache POI。 我想通过使用颜色编码的单元格来使用Excel创build“房间布局”,并将数据加载到Java程序中。 我想了解如何访问一个单元格的颜色属性,但我问的是: 是否可以访问空白单元格的颜色(无数据或值),还是单元格需要有数据才能使Apache POI读取它? 我只对颜色感兴趣,所以最好把垃圾数据放在单元格中,或者可能根据坐标来遍历它们? 我是全新的Apache POI,所以任何帮助,非常感激。