首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用apache poi - Hashmap、ArrayList读取excel

使用apache poi - Hashmap、ArrayList读取excel
EN

Stack Overflow用户
提问于 2016-09-30 23:02:52
回答 2查看 16.4K关注 0票数 0

嗨,

我正在尝试使用excel中的列标题来读取列值(使用java)。如图所示,假设我想读取标题"city",即该列下的所有后续单元格,并显示它们。我该怎么做呢?

通过互联网查看示例,我发现大多数示例都是使用迭代器在行上迭代的。

假设我有一个键的哈希图作为excel的头,随后的值存储在ArrayList中。就像这样

代码语言:javascript
运行
复制
HashMap<String, ArrayList<String>> hashmap = 
                new HashMap<String, ArrayList<String>>();

我应该如何继续?有人能帮我写代码和逻辑吗?

请不要将其标记为重复,我已经尝试过在stackoverflow和internet上搜索,但大多数都使用行进行迭代。

EN

Stack Overflow用户

发布于 2016-09-30 23:29:07

首先,在获得所有列值后,您将读取第一行,下面我给出了如何读取第一行

代码语言:javascript
运行
复制
public void readFirstRow(String filename)
{

    List<String> fieldsArrayList = new ArrayList<String>();

     try{

            FileInputStream myInput = new FileInputStream(new File(filename));

            Workbook workBook = null;

            workBook    = new HSSFWorkbook(myInput);

            Sheet sheet = workBook.getSheetAt(0);

            Row firstRow = sheet.getRow(0);

            int length  = firstRow.getLastCellNum();

            Cell cell = null;

            for( int i = 0 ; i < length ; i++ )

                {
                     cell = firstRow.getCell(i);

                     fieldsArrayList.add(cell.toString());

                }

     }
     catch(Exception e)
     {
         e.printStackTrace();
     }
}

读取列值代码:

//只需传递cityPostion和文件名即可

代码语言:javascript
运行
复制
public void readColumnValues(int cityPosition,String fileName)
{
    try
    {
        FileInputStream myInput = new FileInputStream(fileName);

        Workbook workBook = null;

        workBook = new HSSFWorkbook(myInput);
        Sheet sheet = workBook.getSheetAt(0);

        for ( int i = 0 ; i <= sheet.getLastRowNum() ; i++ )
        {
            Row row = sheet.getRow(i);

            if (i > 0) //skip first row
            {

                Cell cityCell   = row.getCell(cityPosition);


                String cityNames      = cityCell.toString();
            }

        }

    }
    catch(Exception e)
    {
        e.printStackTrace();
    }
}

也许它会对你有所帮助。

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39794578

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档