Tag: apache poi

Apache POI Excel:页面设置与页边距alignment

我有用于Excel文件操作的Apache POI API。 Excel文件是从Jasper Report生成的。 从贾斯珀报告生成Excel是好的。 我想要的是贾斯珀报告不支持的一些额外的东西。 就像添加打印页面设置 – 页眉和页脚的东西。 我忽略了每个Excel页面上的边界。 但是,当我添加页眉和页脚,他们打印有一定的余地。 然后观察MS Excel上页面设置页上有一个checkbox。 此处Align with page marginscheckbox控制页眉和Align with page margins 。 如果这个checkbox被选中,那么它将和excel页面有相同的边距。 问题:如何从Apache POI控制此checkbox字段?

setCellValue不起作用

我不能设置细胞的价值,它的工作原理,如果我试试这个 if(1==1){ celltofill.setCellValue("test"); } 但一旦进入if条件,它将显示syso中的内容,但不会在单元格中插入值。 关于如何解决这个问题的任何想法? 这里是我的代码: public class testexcel { public static void main(String[] args) throws InvalidFormatException, IOException, ParseException{ FileInputStream fis = new FileInputStream("D:\\test6.xlsx"); XSSFWorkbook workbook = new XSSFWorkbook(fis); FileOutputStream fos=new FileOutputStream("D:\\edit6.xlsx"); XSSFSheet sheet = workbook.getSheetAt(0); XSSFSheet sheet2 = workbook.getSheetAt(1); for(int i=1; i <= sheet.getLastRowNum(); i++) { for(int i1=1;i1<sheet2.getLastRowNum();i1++){ Row row = sheet.getRow(i); Cell […]

是否有可能使用java和Apache POI库逐行写入excel文件

我正在尝试逐行写入我的excel文件。 代码将运行正常,没有错误。 但是当我尝试打开excel文件时,出现一个popup窗口,并说:“我们发现excel文件中的某些内容存在问题,您希望我们尽可能地恢复吗? 通常情况下,我使用FileOutputStream之外的工作与数据并使用.setCellValue(值)的循环。 但是当我在循环中使用它时,excel文件不会被更新。 在下面的代码中,写完excel后,我正在closures并重新打开excel文件。 我尝试了可用的解决scheme,但没有工作。 任何帮助表示赞赏。 下面是代码: Package Excel; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.util.Properties; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.openqa.selenium.WebDriver; public class testTool { static WebDriver driver; public static FileInputStream ACF; public static FileOutputStream fos; public static void main(String[] args) throws IOException { Properties […]

如果在没有纸张被识别时如何访问XSSF内容

我正在尝试读取由Web应用程序生成的Excel文件。 我不能到任何列或行,因为XSSF工具不断告诉我我没有工作表。 单个工作表被称为“MySheet”,但是当我按名称search它时,我得到一个-1。 当我search工作表的数量,它告诉我我有0.我做错了什么? import org.apache.poi.ss.usermodel.*; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; public class excelParser { private static final String FILE_NAME = "C:\\Users\\me\\Downloads\\output.xlsx"; public static void main(String[] args) throws FileNotFoundException { if (new File(FILE_NAME).exists()){ FileInputStream excelFile = new FileInputStream(new File(FILE_NAME)); Workbook workbook = new XSSFWorkbook(); //Sheet datatypeSheet = workbook.getSheet("MySheet"); //System.out.println(datatypeSheet.getSheetName()); System.out.println(workbook.getSheetIndex("MySheet")); } else […]

在Apache POI中设置样式

我正在设置标题的样式,我的最后一列也有我为标题设置的样式。 这是我设置设置风格的代码。 XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(sheetName); for (int i = 0; i < numberOfMergedRow; i++) { sheet.addMergedRegion(new CellRangeAddress(i, i, 0, numberOfColumns – 1)); sheet.autoSizeColumn(i); } XSSFRow row = sheet.createRow(0); int l = row.getLastCellNum() + 1; XSSFCell cell = row.createCell((short) l); XSSFCellStyle cellStyle = workbook.createCellStyle(); Font headerFont = workbook.createFont(); Set<Integer> keyset […]

在使用Apache POI进行数据写入时,单元格格式化可在Excel单元格中删除小数点

我正在使用Apache POI将Excel函数写入单元格并评估函数。 我需要做的是从单元格中删除所有的小数点。目前,在每个单元格的值结尾不需要两个零。单元格的格式如下。 但最后总是得到两个零。 XSSFCellStyle cellStyle = cell.getCellStyle(); DataFormat df = workbook.createDataFormat(); cellStyle.setDataFormat(df.getFormat("###,##0")); cell.setCellStyle(cellStyle); if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) { evaluator.evaluateFormulaCell(cell); } 我已经提到下面的url和其他几个网站,并找不到修复这个错误的方法。 链接1 LINK2 注意我在Spring 4.3.1.RELEASE中使用Apache POI版本3.14。

用POI读取另外一行excel文件

使用Apache POI,我试图读取一个Excel文件。 该文件有1000行和1列。 有了这个代码: XSSFSheet ws = workbook.getSheetAt(0); Iterator< Row > rowIt = ws.iterator(); XSSFRow row; int i = 0; while ( rowIt.hasNext() ) { row = (XSSFRow) rowIt.next(); Iterator< Cell > cellIt = row.cellIterator(); while ( cellIt.hasNext() ) { Cell cell = cellIt.next(); my_array[ i ] = cell.getStringCellValue(); } ++i; } 它似乎读取1001行,并且由于最后一行是“”,my_array会得到无效的string。 有什么办法解决这个问题吗? 我希望rowIt.hasNext()是负责,但它不能按预期工作。

如何使用Java中的Apache POI将元数据写入Excel工作簿

元数据Excel 预期的文件属性 需要使用Apache POI将自定义数据写入excel文件。我使用的是POI 3.1.1版本的jar。 这是我的代码: FileInputStream fis = new FileInputStream(sample); workbook = new XSSFWorkbook(fis); POIXMLProperties props = workbook.getProperties(); /* Let us set some core properties now*/ POIXMLProperties.CoreProperties coreProp = props.getCoreProperties(); coreProp.setCreator("Thinktibits"); //set document creator coreProp.setDescription("set Metadata using Apache POI / Java"); coreProp.setCategory("Programming"); //category /* Finally, we can set some custom Properies */ POIXMLProperties.CustomProperties custProp […]

Apache POI到Excel – 零date

在回答之前,请确保您了解我的问题,但并不像看起来那么简单。 请不要只是做一个谷歌search和链接的结果; 我已经看了。 我有一个VB.Net应用程序,我们用一个Java应用程序来取代。 该应用程序的目的是编写一个Excel表(.xls)。 该文件然后被发送到第二方,并处理其中的数据。 我正在使用APACHE POI来编写文件。 最终的产品被第二方拒绝,因为两个时间字段是“无效的”。 抓了我一会儿之后,我注意到Java生成的文件和VB.Net生成的文件正在处理0date值不同。 假设时间是军事时间的下午3点30分,两个文件的数据显示为15点30分。 问题是该字段的date部分: VB.Net生成:1/0/1900 15:30 Java生成:1/1/1970 15:30 我似乎无法find一种方法来使apache POI模仿excel处理0date的方式。 以下是我尝试的一些事情。 我在java应用程序中将我的date/时间variables设置为1/0/1900 15:30。 这给我在应用程序中的错误。 我将我的variables设置为一个string,并将其传递给工作表,然后设置单元格的格式。 我没有得到一个错误,但数据保持“一般”,直到我双击单元格,然后按Enter键。 这个过程假定是自动的,所以这不是一个选项。 我将单元格的公式设置为= TIMEVALUE(“15:30”),但是这不被第二方接受。 有没有人遇到这个问题? 任何人都可以想办法解决这个问题吗? 让第二方改变他们阅读文件的方式不是一种select。

如何导出到使用Apache POI的树形结构?

我有一个class级: class Node{ private Node parent; private List<Node> children; … } 如何使用Apache POI导出它的项目树来获取这样的文档(我只需要移动表中的第一列): A B C D E F G