标签: poi-hssf

如何使用HSSF(Apache POI)在现有Excel中的两行之间插入行

不知何故,我设法在现有的excel文件中的两行之间创建新行.问题是,一些格式化不包括行的移位.

其中之一就是隐藏的行在转换期间不是相对的.我的意思是(例如),隐藏了20到30行,但是当创建新行时,仍然存在格式化.隐藏的行也必须在插入/创建新行期间移动,它应该是21到31.

另一件事是,工作表中的另一个对象不在单元格中.在创建新行之后,文本框不会移动.它就像这些物体的位置是固定的.但我希望它移动,就像我在excel中插入新行或粘贴行一样.如果有插入新行的功能,请告诉我.

这就是我现在所拥有的,只是我代码中的一个片段.

HSSFWorkbook wb = new HSSFWorkbook(template); //template is the source of file
HSSFSheet sheet = wb.getSheet("SAMPLE");
HSSFRow newRow;
HSSFCell cellData;

int createNewRowAt = 9; //Add the new row between row 9 and 10

sheet.shiftRows(createNewRowAt, sheet.getLastRowNum(), 1, true, false);
newRow = sheet.createRow(createNewRowAt);
newRow = sheet.getRow(createNewRowAt);
Run Code Online (Sandbox Code Playgroud)

如果可以复制和粘贴行,那将是很大的帮助.但是我已经在这里问过它并且找不到解决方案.所以我决定创建一个行作为临时解决方案.我已经完成了它,但有这样的问题.

任何帮助都感激不尽.谢谢!

java excel poi-hssf apache-poi

52
推荐指数
4
解决办法
9万
查看次数

为HSSFCellStyle设置前景色始终为黑色

我正在使用POI在Java中创建Excel电子表格.我有以下代码用于创建标题行:

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet("Report");

// some more code

HSSFRow row = sheet.createRow(0);

HSSFCell cell = row.createCell(cellNumber);
HSSFCellStyle cellStyle = wb.createCellStyle();

cellStyle.setFillBackgroundColor(HSSFColor.GREY_25_PERCENT.index);
cellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);

HSSFFont font = wb.createFont();
font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
font.setColor(HSSFColor.WHITE.index);

cellStyle.setFont(font);
cell.setCellStyle(cellStyle);
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,无论我选择什么颜色,在单元格上设置填充背景颜色总是黑色.我究竟做错了什么?如果我不使用"setFillPattern"行,则根本不显示任何颜色.

java poi-hssf apache-poi

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

如何使用POI库在Excel文件中获取行数?

伙计我目前正在使用POI 3.9库来处理excel文件.我知道这个getLastRowNum()函数,它在Excel文件中返回许多行.

唯一的问题是getLastRowNum()返回一个从0开始计数的数字.

因此,如果Excel文件使用前3行,则getLastRowNum()返回2.如果Excel文件只有1行,则getLastRowNum()返回0.

Excel文件完全为空时会发生此问题.getLastRowNum()仍然返回0,所以我无法确定Excel文件是否有1行数据,或者它是否为空.

那么如何检测Excel文件是否为空?

java excel poi-hssf apache-poi

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

使用POI HSSF API从excel单元格中读取日期值

我正在使用POI HSSF API进行Java中的excel操作.我在我的一个excel单元格中有一个日期值"8/1/2009",当我尝试使用HSSF API读取该值时,它会将单元格类型检测为Numeric并返回我的日期的"Double"值.请参阅以下示例代码:

cell = row.getCell(); // date in the cell '8/1/2009'
switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:
    cellValue = cell.getRichStringCellValue().getString();
    break;
case HSSFCell.CELL_TYPE_NUMERIC:
    cellValue = new Double(cell.getNumericCellValue()).toString();
    break;
default:
}
Run Code Online (Sandbox Code Playgroud)

Cell.getCellType()返回NUMERIC_TYPE,因此此代码将日期转换为double!:(

有没有办法在HSSF POI中读取日期!

java excel poi-hssf apache-poi

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

POI/Excel:以"相对"方式应用公式

我正在使用Apache的POI来使用Java操作Excel(.xls)文件.

我正在尝试创建一个新的单元格,其内容是公式的结果,就像用户复制/粘贴公式一样(我称之为"相对"方式,与"绝对"相反).

为了使自己更清楚,这里有一个简单的例子:Cell A1包含"1",B1包含"2",A2包含"3",B2包含"4".单元格A3包含以下公式"= A1 + B1".如果我将公式复制到excel下的A4单元格,它将变为"= A2 + B2":excel正在动态调整公式的内容.

不幸的是,我无法以编程方式获得相同的结果.我找到的唯一解决方案是将公式标记化并自己完成脏工作,但我真的怀疑这应该是这样做的.我无法在指南或API中找到我想要的内容.

有没有更简单的方法来解决这个问题?如果是这样的话,请指点我正确的方向吗?

最好的祝福,

尼尔斯

java excel poi-hssf apache-poi

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

使用HSSF从Excel读取字符串值,但它是双倍的

我正在使用HSSF-POI来读取Excel数据.问题是我在单元格中的值看起来像一个数字,但实际上是字符串.如果我在Excel中查看格式单元格,则表示类型为"text".HSSF Cell仍然认为它是数字的.如何将值作为字符串获取?

如果我尝试使用cell.getRichStringValue,我会得到例外; 如果cell.toString,它与Excel表格中的值不完全相同.

编辑:直到这个解决,我会用

new BigDecimal(cell.getNumericCellValue()).toString()
Run Code Online (Sandbox Code Playgroud)

java excel poi-hssf apache-poi

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

使用Apache POI删除Excel工作表

我必须从Excel文件中删除一张表.

这是我的代码片段:

FileInputStream fileStream = new FileInputStream(destFile);
POIFSFileSystem fsPoi = new POIFSFileSystem(fileStream);

HSSFWorkbook workbook = new HSSFWorkbook(fsPoi);

int index = 0;

HSSFSheet sheet = workbook.getSheet("Setup");
if(sheet != null)   {
    index = workbook.getSheetIndex(sheet);
    workbook.removeSheetAt(index);
}
return destFile;
Run Code Online (Sandbox Code Playgroud)

在此之后,我得到了完全相同的工作簿,而没有删除工作表 "设置"

帮我解决这个问题.任何帮助,将不胜感激

java poi-hssf apache-poi

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

如何知道工作簿中的工作表数量?

我正在使用hssf api从xls文件中读取数据.但有没有办法得到确切的号码.包含存储数据的工作簿中的工作表?

java vba excel-vba poi-hssf apache-poi

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

HSSFWorkbook vs XSSFWorkbook vs SXSSFWorkbook - Apache-poi

HSSFWorkbook vs XSSFWorkbook以及XSSFWorkbookSXSSFWorkbook的优缺点

java poi-hssf apache-poi xssf

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

在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 ×10

java ×10

poi-hssf ×10

excel ×5

xssf ×2

excel-vba ×1

vba ×1