java - 读取数据并写入同一个 Excel 文件

标签 java excel

我想使用java从Excel文件的一个选项卡中读取数据并写入同一Excel文件中另一个选项卡的特定列。您能帮我提供一些解决方案吗?提前致谢。

我的代码看起来像:

public  String [][] getExcelData() throws Exception{

String [][] tabArray = null;

            FileInputStream fi = new FileInputStream("C:\\SCE docs\\Automation\\CustomerAccount_Information.xls"); 
            HSSFWorkbook myWB = new HSSFWorkbook(fi); 
            HSSFSheet mySheet = myWB.getSheetAt(0); 

            FormulaEvaluator evaluator = myWB.getCreationHelper().createFormulaEvaluator();

            xRows = mySheet.getLastRowNum()+1; 
            xCols = mySheet.getRow(0).getLastCellNum(); 


            tabArray = new String [xRows][xCols]; 

            for (int i=0;i<xRows;i++) 
            { 
            HSSFRow row = mySheet.getRow(i); 
            for (int j=3;j<xCols;j++) 
            { 
                HSSFCell cell = row.getCell(j); 
                CellValue cellValue = evaluator.evaluate(cell);
                String value = evaluateFormula(cellValue);
                tabArray[i][j]=value;

         }
            }
            return tabArray;

            }

private String evaluateFormula(CellValue cellValue) {
// TODO Auto-generated method stub

int type = cellValue.getCellType();

Object result = null;

switch (type) {

case HSSFCell.CELL_TYPE_BOOLEAN:
    result = cellValue.getBooleanValue();
     break;
 case HSSFCell.CELL_TYPE_NUMERIC:
     result = cellValue.getNumberValue();
     break;
 case HSSFCell.CELL_TYPE_STRING:
     result = cellValue.getStringValue();
     break;
 case HSSFCell.CELL_TYPE_BLANK:
     break;
 case HSSFCell.CELL_TYPE_ERROR:
     break;


 // CELL_TYPE_FORMULA will never happen
 case HSSFCell.CELL_TYPE_FORMULA: 
     break;
}

return result.toString();
}
            }

我得到的输出是

 Cust Num null
 Cust Num CustAccNum
 Cust Num null
 Cust Num 2-23-456-7891
 Cust Num null
 Cust Num 2-00-006-7891
 Cust Num null
 Cust Num 2-03-456-7891
 Cust Num null
 Cust Num 2-00-234-5678
 Cust Num null
 Cust Num 2-00-023-4891
 Cust Num null
 Cust Num 2-00-234-7891
 Cust Num null
 Cust Num 2-00-345-6781

需要帮助:我不希望显示已为对象结果初始化的空值。您能提供一个工作环境吗?

最佳答案

在 java 中,您可以通过使用第三方库来实现这一点。 Apache 的 POI 是一个很好的库。请参阅以下链接了解更多信息:

Apache POI

借助 Apache POI API,您可以操作几乎所有类型的办公文档。

关于java - 读取数据并写入同一个 Excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18240113/

相关文章:

java - 如何格式化左边的String和右边的int?

Java 缓冲区策略导致严重滞后

excel - 如何在Excel中找到每六个单元格的平均值

c# - 在 c# (^) 符号中使用 Excel 公式

Excel - 多列中的值的总和

vba - 如何将变化的变量合并到 VBA 中的文本 Msgbox 中?

java - 通过父实体更新删除添加子实体列表

java - 获取所有属性是否会在幕后进行左连接?

c# - Winform拖放到excel

Java Completable Future - 拥有 future 循环或循环 future 更好?