不知何故,我设法在现有的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)
如果可以复制和粘贴行,那将是很大的帮助.但是我已经在这里问过它并且找不到解决方案.所以我决定创建一个行作为临时解决方案.我已经完成了它,但有这样的问题.
任何帮助都感激不尽.谢谢!
我正在使用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中读取日期!
我有一个现有的excel电子表格,我正在访问并从中读取值,我正在使用Apache POI HSSF.
它初始化如下:
HSSFSheet sheet;
FileInputStream fis = new FileInputStream(this.file);
POIFSFileSystem fs = new POIFSFileSystem(fis);
HSSFWorkbook wb = new HSSFWorkbook(fs);
this.sheet = wb.getSheet(exsheet);
Run Code Online (Sandbox Code Playgroud)
我正在遍历工作表中存在的所有单元格,这将生成一个单元格对象:
HSSFCell cell = (HSSFCell) cells.next();
Run Code Online (Sandbox Code Playgroud)
请熟悉该框架的人解释如何创建一个(HSSFColor)对象来表示工作表中每个单元格的背景颜色.
非常感谢
编辑,更新
要清楚我想知道的是:如何为现有单元格的背景颜色创建/获取HSSFColor对象?
cell.getCellStyle().getFillBackgroundColor();
Run Code Online (Sandbox Code Playgroud)
此代码仅返回一个短数字,而不是HSSFColor对象.谢谢你到目前为止的答案.
我刚刚学习了POI并发现HSSF非常易于阅读和创建excel文件(.xls).但是,当我想用密码读取excel保护时,我发现了一些问题.我花了一个小时才在互联网上找到这个解决方案.
请你帮我解决这个问题.如果你能给我一个代码片段,我很高兴.
谢谢.
jar命令无法在我的盒子上运行.我已经下载了jdk,并设置了envar"Path"以包含jdk\bin目录的路径.但是,我仍然得到令人讨厌的消息,"'jar'不被识别为内部或外部命令,可操作程序或批处理文件." 有没有人有任何建议来解决这个问题?
当电子表格中的单元格包含简单日期(mm/dd/yyyy)时,poi API会将单元格类型标记为"数字".这可能是因为电子表格(IMO)历史上只识别字符串和实数.
可以对单元索引进行硬编码,并有条件地使用它来调用'getDateCellValue'.但这感觉就像一个黑客.
poi API还有哪些其他方法可以确定单元格中的内容是Date而不是实数?
apache-poi ×5
java ×5
poi-hssf ×5
excel ×2
batch-file ×1
cell ×1
date ×1
hssf ×1
jar ×1
windows ×1