Tag: apache poi

使用Apache POI写入excel会损坏excel文件

我正在尝试使用Apache POI写入excel。 代码(下面)执行得很好,但是当我试图打开excel时,显示excel中的数据已经损坏,无法打开。 Excel版本:Microsoft Office Excel 2007和Microsoft Office Excel 2003(都尝试过) Apache POI版本:3.6 import java.io.FileOutputStream; import java.io.IOException; 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; public class WriteExcel{ public String FilePath; XSSFWorkbook wb= null; XSSFSheet ws= null; XSSFRow xr=null; XSSFCell xc=null; FileOutputStream fout = null; public WriteExcel(String FilePath) throws IOException { this.FilePath=FilePath; fout=new FileOutputStream(FilePath); wb=new XSSFWorkbook(); […]

使用Java POI编写带有LinkedHashmap的Excel工作表

我几乎在那里解决我的问题,但只是陷入小问题。 我正在尝试从LinkedHashmap打印一个Excel文件。 我使用Java和POI库来达到我的目的。 我从LinkedHashmap的另一个excel文件中提取一些数据,并将这些数据打印到新的excel文件中。 存储在LinkedHashmap数据很大,并按以下方式列出: Keys | Values ———————————– Key1 : value1, value1, value1 Key2 : value2, value2, value2 key3 : value3, value3, value3 我想要的是: excel文件中的输出应按以下格式显示: Excel_file_out_deserved.xslx: + key1 | value1 key1 | value1 key1 | value1 | // (if possible, empty cell space here will look good) key2 | value2 key2 | value2 key2 […]

autoSizeColumn()失败的XSSFSheet

我已经复制了所使用的循环,并正在自动调整HSSFSheet中的列,但是对于XSSFSheet而言,用于调整列的单元格不是更广泛的单元格。 这导致列宽度为“0”。 XSSFSheet xssfSheet = null; ….. for (short c = 0; c<11; c++){ xssfSheet.autoSizeColumn(c); } 提前致谢! 编辑:这是在方法的最后完成,没有数据被添加。 问题似乎是它自动化到每列中添加的最后一个单元格的内容

Excel工作表的单元格types显示为实际上是文本types的数字

我正在使用apache-poi-3.9来处理Excel文档。 我在TEXTtypes的文档中有一个单元格(单元格值为445)。 但是当我检查Java中的单元格types时,它显示NUMERIC。 有没有办法像excel文档中那样获取单元格types。 注意:单元格被定义为TEXT。 它可能包含字母数字值或数字值,但我需要该types为文本。

Java POI – 将行插入为列

我基本上从我的数据库中获取行,并将其粘贴到我的Excel文件中作为行。 这很容易,因为没有任何数据转换。 这是我的代码(最重要的部分): XSSFSheet chart1_sheet = wb.createSheet("Chart1"); String strss_chart[] = {"dataa", "inn", "closed", "application"}; hed_row = chart1_sheet.createRow(0); for_each_header(hed_row, strss_chart); sql = "select dataa, inn, closed, application from Chart1"; statement = conn.prepareStatement(sql); resultSet = statement.executeQuery(); row = 1; while(resultSet.next()) { Row dataRow = chart1_sheet.createRow(row); for_each_row_func(dataRow, resultSet, strss_chart); row = row + 1; } 而我的两个function: public static […]

使用Apache POI从Excel中读取由一系列合并单元格索引的多行

我正在尝试使用Apache POI读取Excel文件。 我的问题是试图读取一系列的行作为一个合并单元格,考虑到这个合并包含的行数是任意的。 这张照片 可能是一个适当的例子,我希望。 在这种情况下,我不能拿出一个函数来通过属性的所有行,并停止当我到达外键行。 合并单元格中的“属性”string包含在合并单元格的第一行中。 谢谢您的帮助!

未报告的例外。 必须被逮捕或宣布被抛出

所以我正在试图学习Apache的POI API,而且我对理解某些东西有点困难。 我正在尝试使用JFileChooser类打开现有的Excel文件,以便用户selectExcel文件,然后以特定方式对其进行修改。 我有问题,但打开文件。 它不断给我这个错误:未报告的例外。 必须被捕获或被宣布被抛出在有XSSFWorkbook代码的行。 我的逻辑如下: 1)让用户使用JFileChooser类select他们想要修改的excel文件 2)创build一个新的工作簿和工作表,从选定的Excel文件中传输数据 3)修改数据 public class readInExcel { static void readExcel() throws IOException { JFileChooser fileChooser = new JFileChooser(); fileChooser.setCurrentDirectory(new File(System.getProperty("user.home"))); int returnVal = fileChooser.showOpenDialog(new JPanel()); if(returnVal == JFileChooser.APPROVE_OPTION) { File OGFile = fileChooser.getSelectedFile(); String fileName = "user.home.Desktop"; XSSFWorkbook wb = new XSSFWorkbook(OGFile); XSSFSheet sheet = wb.createSheet("FirstSheet"); } }

JAVA使用apache poi创buildxlsx,第9行之后的所有行将被插回到第2行

我正在关注这个站点上的Apache POI – Spreadsheets教程: https : //www.tutorialspoint.com/apache_poi/apache_poi_spreadsheets.htm 一切工作正常,但是当我尝试添加超过10行时,第9行之后的所有行将从第二行插回。 我是新的JAVA,是否有任何错误的循环迭代数据或其他东西? 请帮忙! 我使用了教程中的全部代码,但添加了更多行来创build更多行: package testing; import java.io.File; import java.io.FileOutputStream; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class Testing { /** * @param args the command line arguments * @throws java.lang.Exception */ public static void main(String[] args) throws Exception { […]

在使用LibreOffice Calc打开文件时,使用apache poi在java中的行3000到3005中写入图像

我使用poi 3.9来创buildxlsx文件,一切正常,直到我的文件长度超过1600行 。 跨过1600行后,我能写数据,但我无法写图像所有图像相互追加在行号1640这是奇怪的,我正在poi从长时间,并select了它的库限制和更新的问题我的诗到3.15但同样的问题,在这里我能够写图像高达2000行,然后我试图poi 3.16但是问题是一样的,但在这里,我可以写图像高达2500行 。 以下是我写图片的代码 private void drawImageOnExcelSheet(XSSFSheet sitePhotosSheet, int row1, int row2, int col1, int col2, String fileName) { try { InputStream is = new FileInputStream(fileName); byte[] bytes = IOUtils.toByteArray(is); int pictureIdx = sitePhotosSheet.getWorkbook().addPicture(bytes,Workbook.PICTURE_TYPE_JPEG); is.close(); CreationHelper helper = sitePhotosSheet.getWorkbook().getCreationHelper(); Drawing drawing = sitePhotosSheet.createDrawingPatriarch(); ClientAnchor anchor = helper.createClientAnchor(); anchor.setAnchorType(AnchorType.MOVE_AND_RESIZE); anchor.setCol1(col1); anchor.setCol2(col2); anchor.setRow1(row1); anchor.setRow2(row2); […]

更改由apache poi生成的excel表单的图表形状

我有一个Java文件生成一个Excel表单,其中包含大量的数据。 为了更好的用户体验,我们决定从数据中简单地生成折线图。 生成图表并不困难,但要把它做成我们需要的确切形状是一个问题。 目前,图表边框如下所示: 正如你所看到的,边界在angular落弯曲。 我希望它看起来像这样: 所以,我一直无法find办法做到这一点。 文档不是很详细。