Tag: java

Excel公式不更新单元格

我正在使用Apache POI更改Excel表格中的单元格。 在更改值之后,具有已更改的单元格的公式的单元格不会更新。 当我进入excel并用公式单击单元格,然后单击function栏中的公式更新。 我有计算选项设置为自动更新。 快速示例。 行: [A2 + A3] [1] [2] 这里A1等于3 当我使用POI更改它时: [A2 + A3] [2] [5] A1仍然等于3,直到我点击该单元格。 刷新工作簿或工作表也不起作用。 这是Excel或POI的问题吗? 任何人都可以想到一个解决方法?

将内容粘贴到Excel文件时如何从string中删除回车

在将由Java代码生成的内容(或文本)粘贴到excel中时遇到问题。 问题是,我的Java代码生成一个多行的string,即包含换行符( \n )。 当我尝试复制这些内容并将其粘贴到一个Excel文件中时,我得到一个带方框符号的多行文字。 我开始知道Windows使用\r\n换行符,而不是\n 。 我尝试用\r\nreplace\r\n并粘贴生成的文本,但是我在Excel文件中获得了相同的方框。 这是我的示例代码: String myString = "a1\nb1"; String tmpString =myString.replace("\n","\r\n"); System.out.println( "Original = " +"\""+myString+"\""); System.out.println( "Result = " +"\""+tmpString+"\""); 我用“”来包装文本。 当我试图在Excel中粘贴tmpstring时,我得到了方框。 我如何删除我的单元格中的多行框?

为什么我不能在Apache POI中将一个工作簿链接到另一个工作簿?

我有一个工作簿,里面有一些数据。 我正在使用该工作簿,并根据其他工作簿中的数据创build另一个工作簿,并在其中包含折线图。 代码运行良好,但每当我打开graphics文件,我得到的警告We can't update some of the links in your workbook right now 。 如果我单击警告菜单中的“ Edit Links…button,将显示无法find数据工作簿。 如果我点击Change Source… ,然后select正确的工作簿,那么工作正常。 为什么是这样? POI能否保留两个文件之间的链接? 我的代码: 创build数据工作簿: public static XSSFWorkbook createDataSpreadsheet(String name, long[] data) { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet(name); int rowNumber = 0; for(int i = 1; i < data.length + 1; […]

使用javasearchxlsx和xls文件

我有一个大型的xlsx文件,其中我必须实现search选项的海量数据我已经使用Apache POI jar以及jxl jar,以便在行和列之间进行search。 但是,在大数据之间花费很多时间,有些人可以帮助我,也就是任何jar文件或者其他可用于Excel文件search的概念。 String searchValue="my_value_to_search"; for (int i = 0; i < sheet.getColumns(); i++) { for (int j = 0; j < sheet.getRows(); j++) { value = sheet.getCell(i, j); valueType = value.getType(); String val=getCellType(valueType, value); if (val != null&&val==searchValue) { // To do manipulation. } } }

Apache POI getRow()返回null,.createRow失败

我使用Apache POI v3.12有以下问题:我需要使用一个包含49行[0..48]的XLSX文件作为模板,用数据填充它的单元格,并将其写为另一个文件,以便可以重用再次模板。 我所做的大概是这样的: XSSFWorkbook wbk_template = new XSSFWorkbook(new FileInputStream (f_wbk_template)); SXSSFWorkbook wbk = new SXSSFWorkbook(wbk_template, 50, true); Sheet sheet = wbk.getSheet(STR_SHEET_NAME); / 稍后的/ Row row = sheet.getRow(rownum); if (null == row) { row = sheet.createRow(rownum); } debugging后发现getRow()返回null,但是尝试.createRow()失败: java.lang.IllegalArgumentException: Attempting to write a row[2] in the range [0,48] that is already written to disk. at […]

Apache POI,创build新的单元格覆盖了行的样式

我正在使用Apache POI将数据导出到.xlsx文件,我想对文件中包含的某些行和单元格进行样式设置。 我正在使用XSSF,因为该文件将在Excel 2007+中读取。 基本上,我的问题是,我试图设置一个行样式,如下面的例子,它为索引0整个行设置一个黑色的前景色。它工作正常,但每当我创build一个新的单元格,新创build单元格没有样式,就好像它重写了我指定的行样式。 这里有一个代码片段来演示我在做什么: XSSFWorkbook wb = new XSSFWorkbook(); XSSFSheet sheet = wb.createSheet("mySheet"); XSSFRow row = sheet.createRow(0); XSSFCellStyle myStyle = wb.createCellStyle(); myStyle.setFillForegroundColor(new XSSFColor(new Color(255, 255, 255))); myStyle.setFillPattern(CellStyle.SOLID_FOREGROUND); row.setRowStyle(myStyle); //This works, the whole row is now black row.createCell(0); // This cell doesn't have a style, the rest of the line stays stylized row.getCell(0).setCellValue("Test"); 我也尝试* […]

如何使用Apache POIselect和加粗整个工作表

我是Apache POI库的初学者。 在VBA中,我知道我可以用下面的代码select和加粗整个工作表 Dim ws As Worksheet Set ws = ThisWorkbook.Sheets(1) ws.Cells.Font.Bold = True 我可以通过使用Apache POI库编码来知道如何select和加粗整个表格吗? 谢谢

Java Apache Commons getPercentile()与MS Excel百分比不同的结果

我有一个algorithm,用Apache Commons计算一系列值(12个值)的percentile(85) ),以便稍后用阈值进行评估以作出决定。 结果与Excel给出的结果类似,但并不相同,有时候这对于我的应用程序来说是至关重要的,因为使用excel结果没有通过阈值,并且在Java使用Apache Commons Math,所以我得到了不同的结果。 这里是一个例子:每2小时互联网stream量(Mbps) 32,7076813360000000 41,2580429776000000 45,4453940200000000 48,8044409456000000 46,7462847936000000 49,8028100056000000 54,3719451144000000 41,9708134600000000 29,4371963240000000 22,4667255616000000 20,0388452248000000 28,7807757104000000 除以1000 Mb(电缆的容量)之后,我计算职业的百分比(85) Excel:0,049153870117 Apache Commons Math:0.05003126676104001 我发现有可能用setPercentileImpl()来改变百分位数的实现(它不存在官方的setPercentileImpl() ,但我找不到任何如何做这个的例子,或者Excelalgorithm(这是一个我被告知实现)。 任何有关这方面的帮助将受到欢迎。 谢谢。

在Excel中使用Java Apache POI插入行

我正在开发与Excel工作表有关的桌面应用程序,所以我在两行之间插入行时遇到了一些问题,有没有可能在Java中使用Apache POI Workbook wb3=WorkbookFactory.create(new FileInputStream("Book1.xls")); Sheet sh=wb3.getSheet("sheet1"); //Reading the available rows using (sh.getRow(1)) //Here i need to insert second row (????) //I have third row here which is already exist (sh.getRow(3))

在Apache Poi 3.7中以特定格式写入数值单元格的Double值

我需要在数值单元格中使用特定的格式编写一个Double值,我的意思是,生成的xls必须包含包含Double值的数字单元格,例如:8,1。 我正在尝试类似于: DecimalFormat dFormat = new DecimalFormat("##.#"); dFormat.format(doubleValue); 但是,由于格式方法返回一个string,无论我是否创build单元格作为数字或不,他们总是performance为文本单元格。 我在想两个select: 强制单元格performance为数字单元格。 忘记DecimalFormat并使用Double类指定逗号作为小数点分隔符,我不确定这是可能的。 任何想法?