使用 Apache POI 读取 excel 文件

2024-03-11

我创建了这段代码来使用 Apache POI 读取 excel 文件的内容。我使用 eclipse 作为编辑器,但是当我运行代码时,我在粗体行中遇到了问题。有什么问题? excel的内容如下:

Emp ID  Name    Salary

 1.0    john    2000000.0

 2.0    dean    4200000.0

 3.0    sam     2800000.0

 4.0    cass    600000.0

import java.io.*;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;



public class ExcelRead {

public static void main(String[] args) throws Exception {
    File excel = new File ("C:\\Users\\Efi\\Documents\\test.xls");
    FileInputStream fis = new FileInputStream(excel);

    HSSFWorkbook wb = new HSSFWorkbook(fis);
    HSSFSheet ws = wb.getSheet("Input");

    int rowNum = ws.getLastRowNum()+1;
    int colNum = ws.getRow(0).getLastCellNum();
    String[][] data = new String[rowNum][colNum];


    for (int i=0; i<rowNum; i++){
        HSSFRow row = ws.getRow(i);
            for (int j=0; j<colNum; j++){
                HSSFCell cell = row.getCell(j);
                String value = cellToString(cell);
                data[i][j] = value;
                System.out.println("The value is" + value);

            }
       }
    }

public static String cellToString (HSSFCell cell){

int type;
Object result;
type = cell.getCellType();

    switch(type) {


    case 0://numeric value in excel
        result = cell.getNumericCellValue();
        break;
    case 1: //string value in excel
        result = cell.getStringCellValue();
        break;
    case 2: //boolean value in excel
        result = cell.getBooleanCellValue ();
        break;
    default:
        ***throw new RunTimeException("There are not support for this type of               
       cell");***
        }

return result.toString();
}

}

其他细胞类型 http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/Cell.html除了您正在捕获的内容之外switch陈述。您有以下案例0 (CELL_TYPE_NUMERIC), 1 (CELL_TYPE_STRING), and 2, but 2 is CELL_TYPE_FORMULA。以下是其他可能的值:

  • 3: CELL_TYPE_BLANK
  • 4: CELL_TYPE_BOOLEAN
  • 5: CELL_TYPE_ERROR

Use the Cellswitch 语句中的单元格类型常量而不是整数文字,并使用所有 6 个来捕获所有可能的情况。

正如@Vash 已经建议的那样,包括实际的单元格type在你的RuntimeException信息。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Apache POI 读取 excel 文件 的相关文章

随机推荐

  • 在WAMP上开发LAMP是不是很蠢?

    在与开源有些疏远并花了几年时间开发 Web 应用程序之后ASP NET https en wikipedia org wiki ASP NET 我将开始进行大量的 PHP MySQL 开发 我已经很轻松地安装了Wamp服务器 https w
  • Core Data NSPredicate 按实体类过滤?

    我将如何创建一个NSPredicate按类实体过滤Contact 解决方案为NSPredicate 检查对象类的种类 https stackoverflow com a 8065935 242933崩溃 NSPredicate predic
  • 标头中没有 no-cors 时无法获取 POST

    在提出这样的请求时 return fetch http localhost 8000 login method POST headers new Headers Content Type application json Accept ap
  • 如何以编程方式知道 NodeJS 应用程序何时内存不足

    我如何知道我的应用程序内存不足 对我来说 我在服务器上进行一些视频转码 有时会导致内存不足错误 因此 我希望知道应用程序何时耗尽内存 以便我可以立即终止视频转码器 谢谢 您可以看到内置的内存正在使用多少process module cons
  • Swift NSTimer 动态改变间隔[重复]

    这个问题在这里已经有答案了 如何更改 NSTimer 上的时间间隔 var difficulty Double 1 0 override func viewDidLoad super viewDidLoad NSTimer schedule
  • Blazor - 动态改变角色

    我有一个 blazor 应用程序 在页面中我使用以下代码根据当前用户角色显示一些部分
  • 如何为按钮的按下状态设置不同的颜色?

    我有一些Buttons在我的 Android 应用程序上 它们有图标和文本 我可以设置a的背景颜色Button在java代码中 如果单击该按钮 我想以不同的颜色显示 那么 如何为按下状态设置不同的颜色Button
  • HTML2PDF 字符集中有 æøå 字符

    content html2pdf new HTML2PDF P A4 en html2pdf gt writeHTML content false html2pdf gt Output S 给我一个带有 的 PDF 文件 我检查了 html
  • 更改应用栏的颜色

    我试图理解 两者之间有什么区别Toolbar Appbar ActionBar 我正在尝试将 AppBar 或其他任何内容的颜色更改为红色 有人提到尝试更改主题 我尝试过 但不知道有什么区别 而且我也是 Android 编程新手 所以如果你
  • 我应该将 _method=PUT/DELETE 存储在帖子中还是网址中

    我正在使用 ASP NET MVC 构建 RESTful Web 应用程序 并计划通过 POST 传输 PUT 和 DELETE 请求 因为这似乎是最实用的解决方法 我想知道的是 我是否应该像这样通过 url 传输信息
  • 可以将选项添加到 npm package.json 依赖项中吗?

    我对 sqlite3 包有依赖性 默认情况下 安装时 sqlite3 软件包会下载并使用 sqlite3 引擎的预打包版本 使用 sqlite3 扩展时有时会出现问题 因此可以选择使用以下命令安装它 npm install build fr
  • 填充其父项的 ListBoxItem

    我正在开发一个 Windows Phone 应用程序 我有以下 XAML
  • 将相对路径转换为绝对路径?

    我不确定这些路径是否重复 给定相对路径 如何使用 shell 脚本确定绝对路径 Example relative path x y a b z c d absolute path a b c d 我在unix中遇到的最可靠的方法是readl
  • 为什么不能在 Slick 中使用已编译的 Insert 语句

    狡猾的专家 我正在学习和使用 Slick 我有一个问题 文档说编译查询仅适用于选择 更新和删除 http slick typesafe com doc 2 0 0 queries html compiled queries http sli
  • Spark DataFrame 重新分区:未保留的分区数

    根据 Spark 1 6 3 的文档 repartition partitionExprs Column 应保留结果数据框中的分区数量 返回按给定分区划分的新 DataFrame 保留现有分区数量的表达式 取自https spark apa
  • 无法启动模拟器:错误:模拟器在 60 秒内未连接

    我无法使用 VSCode for Flutter 进行调试 我正在使用 Windows 并且正在尝试使用 Android 模拟器 我尝试重新安装 Flutter Android SDK 和 VSCode 来解决该问题 并尝试设置环境变量 这
  • 恢复 C# Windows 窗体背景色

    我在 Windows 窗体窗体上有一个按钮 我将其背景颜色更改为Color Yellow当它被点击时 当再次单击它时 我想将其恢复为原始默认外观 默认背景色是SystemColor Control 当第一次单击按钮时 我唯一改变的是 btn
  • iOS 的标准语法解析器是什么?

    iPad 和 iPhone 的 iOS 支持解析器吗 特别是 lex yacc 或 flex bison 是否可用于 iOS 开发 xcode4 有原生支持的库吗 我可以通过 lex yacc 生成语法 然后获取 c 文件并将它们放入我的项
  • 在当前正在写入的文件上创建 FileInfo 是否安全?

    在我的应用程序 C 4 5 winforms 应用程序 中 我定期检查文件夹的内容并将找到的任何文件的详细信息存储到数据库中 在此例程中 我创建了一个FileInfo实例使用new FileInfo path 我读了属性CreationTi
  • 使用 Apache POI 读取 excel 文件

    我创建了这段代码来使用 Apache POI 读取 excel 文件的内容 我使用 eclipse 作为编辑器 但是当我运行代码时 我在粗体行中遇到了问题 有什么问题 excel的内容如下 Emp ID Name Salary 1 0 jo