标签: xssf

在POI XSSF工作簿中为合并区域添加边框

我正在使用apache poi 3.7,我需要将边框放到一系列单元格或合并区域.

当工作表和工作簿类型为XSSF时,如何将边框应用于合并区域.在HSSF类型中,我使用RegionUtil-/HSSFRegionutil,但是如果在XSSF类型中使用第一个对象(Regionutil),则它不起作用并将黑色背景颜色放入单元格范围.

Regionutil通常使用CellRangeAddress,我找不到有关此问题的信息.我不知道CellRangeAddres是否会导致这种情况.

java poi-hssf apache-poi xssf

11
推荐指数
3
解决办法
3万
查看次数

自动换行apache POI(Excel)

我有一个java程序,它将标题和数据作为输入并生成一个excel文件.

但是,有时当标题值很长并且列数更多时,我的Excel工作表往往会不必要地变宽.

由于标题,我将向下滚动到右边以查看尾端列的内容.

有没有办法可以解决这个问题,如果单元格中的内容比较大,然后说值x,则自动换行并自动调整行高并修改列宽.

我正在寻找的粗略算法是:

 if(content.size is more then 50 chars){
       - apply auto wrap with centred text
       - adjust the row height accordingly
       - adjust all the cells in the column accordingly
 }
Run Code Online (Sandbox Code Playgroud)

如果有人能指出我在网上提供的一些例子.

谢谢阅读!

java apache-poi xssf

11
推荐指数
1
解决办法
5万
查看次数

XSSFCellStyle setFillForegroundColor和setFillBackgroundColor不起作用

我尝试使用setFillForegroundColor和setFillBackgroundColor来更改excel文件的单元格颜色.

但是,我失败了,我真的不知道问题是什么.我用Google搜索了好几个小时,仍然无法找到正确的方法来设置颜色.

以下是我写的代码:

import java.awt.Color;
import java.io.File;
import java.io.FileOutputStream;

import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFCellStyle;
import org.apache.poi.xssf.usermodel.XSSFColor;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

public class TestColor {
    public static void main(String[] args) {
        File f = new File("test.xlsx");
        XSSFWorkbook wb = new XSSFWorkbook();
        XSSFSheet sheet = wb.createSheet();
        XSSFRow row = sheet.createRow(0);
        XSSFCell cell = row.createCell(0);
        cell.setCellValue("no blue");

        // set the color of the cell
        XSSFCellStyle style = wb.createCellStyle();
        XSSFColor myColor = new XSSFColor(Color.BLUE);
        style.setFillForegroundColor(myColor);
        style.setFillBackgroundColor(myColor);
        cell.setCellStyle(style); // this command seems to fail …
Run Code Online (Sandbox Code Playgroud)

java xssf

11
推荐指数
2
解决办法
2万
查看次数

XSSF POI是细胞日期

有没有办法确定细胞是否是约会?我知道style.getDataFormatString(),但这对我没有帮助,因为我无法确定是否格式化是否为日期.

java apache-poi xssf

8
推荐指数
1
解决办法
1万
查看次数

XSSFWorkbook需要花费大量时间来加载

我使用以下代码:

File file = new File("abc.xlsx");
InputStream st = new FileInputStream(file);
XSSFWorkbook wb = new XSSFWorkbook(st);
Run Code Online (Sandbox Code Playgroud)

xlsx文件本身有25,000行,每行包含500列内容.在调试过程中,我看到我创建XSSFWorkbook的第三行,需要花费大量时间(1小时!)才能完成此语句.

有没有更好的方法来访问原始xlsx文件的值?

java excel optimization apache-poi xssf

8
推荐指数
1
解决办法
2万
查看次数

java.lang.IllegalArgumentException:您的InputStream既不是OLE2流也不是OOXML流

当我正在阅读Excel文件(.xls格式)时,我不断得到一个异常:

java.lang.IllegalArgumentException: Your Input Stream was neither an OLE 2 stream, nor an OOXML stream.
Run Code Online (Sandbox Code Playgroud)

我Go-ogled并发现如果输入流不支持重置或标记,我应该用它包装pushbackStream.我的输入流未支持mark\reset.

所以使用pushbackStream是唯一的选择吗?如何使用它?什么是使用它?

谢谢

java xls poi-hssf xssf

8
推荐指数
1
解决办法
2万
查看次数

使用Apache poi将csv转换为xls/xlsx?

我需要在我的项目中将csv转换为xls/xlsx?我怎样才能做到这一点?有人可以给我发一些例子吗?我想用Apache poi做这件事.我还需要从java端创建一个单元格.

spring spring-mvc poi-hssf apache-poi xssf

8
推荐指数
4
解决办法
3万
查看次数

XSSF(POI) - 向数据透视表添加"公式"列

我正在使用POI 3.12-beta1:

<!-- Apache POI (for Excel) -->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>3.12-beta1</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.12-beta1</version>
</dependency>

<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>ooxml-schemas</artifactId>
    <version>1.1</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

我正在尝试创建一个计算的数据透视表列,其定义为:= 'Ended' / 'Generated' * 100.

我继续在Excel中手动编辑工作表以使其工作,当我将*.xlsx文件转换为ZIP目录并查看它时,我发现以下代码\xl\pivotCache\pivotCacheDefinition1.xml:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<pivotCacheDefinition xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" r:id="rId1" refreshOnLoad="1" refreshedBy="vyasrav" refreshedDate="42110.580247453705" createdVersion="3" refreshedVersion="3" minRefreshableVersion="3" recordCount="352">
    <cacheSource type="worksheet">
        <worksheetSource ref="A1:O353" sheet="Data"/>
    </cacheSource>
    <cacheFields count="16">
        <!-- OMITTED -->
        <cacheField name="Avg Pct Processed" numFmtId="0" formula="'Ended' / 'Generated' * 100" databaseField="0"/>
    </cacheFields>
</pivotCacheDefinition>
Run Code Online (Sandbox Code Playgroud)

所以我回到了我的java程序并添加了以下代码来自动生成它,但它没有注册数据列"15"而且我收到了IndexOutOfBounds错误.

// Add pivot (pivot …
Run Code Online (Sandbox Code Playgroud)

java excel pivot-table apache-poi xssf

8
推荐指数
1
解决办法
3143
查看次数

如何解决java.lang.VerifyError:org/apache/poi/xssf/usermodel/XSSFWorkbook?

我正在尝试从资产文件夹中读取xlsx文件.我收到以下例外,

05-16 10:12:05.613:E/AndroidRuntime(2915):致命异常:主05-16 10:12:05.613:E/AndroidRuntime(2915):java.lang.VerifyError:org/apache/poi/xssf /的usermodel/XSSFWorkbook

在此例外之前,我收到了一些警告,如,

  • 找不到方法org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument $ Factory.parse,从方法org.apache.poi.xssf.usermodel.XSSFWorkbook.onDocumentRead引用

  • VFY:无法解决异常类3612(Lorg/apache/xmlbeans/XmlException;)

我在我的应用程序中添加了poi 3.12库,库截图如下,

在此输入图像描述

我在Order and Export中检查了poi-3.12和poi-ooxml-3.12 jar文件,截图如下,

在此输入图像描述

我使用下面的代码,

        InputStream is = context.getAssets().open("sample.xlsx"));
        XSSFWorkbook workbook = new XSSFWorkbook(is);
        XSSFSheet sheet = workbook.getSheetAt(0);
        Cell cell = sheet.getRow(0).getCell(0);
        String value = cell.getStringCellValue() + "";
Run Code Online (Sandbox Code Playgroud)

我想读取和写入.XLSX和.XLS文件.如何解决这个问题?

提前致谢.

java excel android apache-poi xssf

8
推荐指数
1
解决办法
2795
查看次数

Java POI XSSF VLookup公式

我试图使用Java和Apache POI将简单的VLookup公式放在我的".xlsx"文件中.
这个公式有外部参考,这对我不起作用.

所以为了给你更多的细节,我正在使用poi和poi-ooxml版本3.13和excel 2007.
我将这个公式放入单元格(其中cell是一个Cell):

cell.setCellType(Cell.CELL_TYPE_FORMULA);
cell.setCellFormula("StringContainingFormula");
Run Code Online (Sandbox Code Playgroud)

然后评估公式,我尝试了三种不同的方法,但没有运气.(wb是XSSFWorkbook).

1

FormulaEvaluator mainWorkbookEvaluator = wb.getCreationHelper().createFormulaEvaluator();
Map<String,FormulaEvaluator> workbooks = new HashMap<String, FormulaEvaluator>();
workbooks.put("SpreadsheetName.xlsx", mainWorkbookEvaluator);
mainWorkbookEvaluator.setupReferencedWorkbooks(workbooks);
mainWorkbookEvaluator.evaluateAll();
Run Code Online (Sandbox Code Playgroud)

2

XSSFEvaluationWorkbook.create(wb);
Workbook nwb = wb;
FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator();
for (Sheet sheet : nwb) {
    for (Row r : sheet) {
        for (Cell c : r) {
            if (c.getCellType() == Cell.CELL_TYPE_FORMULA) {
                try {
                    //evaluator.evaluateFormulaCell(c);
                    evaluator.evaluate(c);
                } catch (Exception e) {
                    System.out.println("Error occured in 'EvaluateFormulas' : " + e);
                }
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

3 …

java apache-poi xssf

8
推荐指数
1
解决办法
5302
查看次数