`
frank1998819
  • 浏览: 752090 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类

Java POI 读写Excel (转)

    博客分类:
  • Java
 
阅读更多

Java读写Excel

工作中经常需要对Excel进行读写操作,java操作excel文件比较流行的是apache poi包,excel分为xls(2003)和xlsx(2007)两种格式,操作这两种格式的excel需要不同的poi包。

  • xls格式

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>3.11-beta1</version>
    </dependency>
    
  • xlsx格式

    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>3.11-beta1</version>
    </dependency>
    

读xls

    File file = new File("src/test/resources/test.xls");
    POIFSFileSystem poifsFileSystem = new POIFSFileSystem(new       FileInputStream(file));
    HSSFWorkbook hssfWorkbook =  new HSSFWorkbook(poifsFileSystem);
    HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(0);

    int rowstart = hssfSheet.getFirstRowNum();
    int rowEnd = hssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
        HSSFRow row = hssfSheet.getRow(i);
        if(null == row) continue;
        int cellStart = row.getFirstCellNum();
        int cellEnd = row.getLastCellNum();

        for(int k=cellStart;k<=cellEnd;k++)
        {
            HSSFCell cell = row.getCell(k);
            if(null==cell) continue;
            System.out.print("" + k + "  ");
            //System.out.print("type:"+cell.getCellType());

            switch (cell.getCellType())
            {
                case HSSFCell.CELL_TYPE_NUMERIC: // 数字
                                System.out.print(cell.getNumericCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_STRING: // 字符串
                    System.out.print(cell.getStringCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
                    System.out.println(cell.getBooleanCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_FORMULA: // 公式
                    System.out.print(cell.getCellFormula() + "   ");
                    break;
                case HSSFCell.CELL_TYPE_BLANK: // 空值
                    System.out.println(" ");
                    break;
                case HSSFCell.CELL_TYPE_ERROR: // 故障
                    System.out.println(" ");
                    break;
                default:
                    System.out.print("未知类型   ");
                    break;
            }

        }
        System.out.print("\n");
    }

读xlsx

    File file = new File("src/test/resources/test.xlsx");

    XSSFWorkbook xssfWorkbook = new XSSFWorkbook(file);
    XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);

    int rowstart = xssfSheet.getFirstRowNum();
    int rowEnd = xssfSheet.getLastRowNum();
    for(int i=rowstart;i<=rowEnd;i++)
    {
        XSSFRow row = xssfSheet.getRow(i);
        if(null == row) continue;
        int cellStart = row.getFirstCellNum();
        int cellEnd = row.getLastCellNum();

        for(int k=cellStart;k<=cellEnd;k++)
        {
            XSSFCell cell = row.getCell(k);
            if(null==cell) continue;

            switch (cell.getCellType())
            {
                case HSSFCell.CELL_TYPE_NUMERIC: // 数字
                    System.out.print(cell.getNumericCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_STRING: // 字符串
                    System.out.print(cell.getStringCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_BOOLEAN: // Boolean
                    System.out.println(cell.getBooleanCellValue()
                            + "   ");
                    break;
                case HSSFCell.CELL_TYPE_FORMULA: // 公式
                    System.out.print(cell.getCellFormula() + "   ");
                    break;
                case HSSFCell.CELL_TYPE_BLANK: // 空值
                    System.out.println(" ");
                    break;
                case HSSFCell.CELL_TYPE_ERROR: // 故障
                    System.out.println(" ");
                    break;
                default:
                    System.out.print("未知类型   ");
                    break;
            }

        }
        System.out.print("\n");
    }

写xls

    HSSFWorkbook workbook = null;
    workbook = new HSSFWorkbook();
    //获取参数个数作为excel列数
    int columeCount = 6;
    //获取List size作为excel行数
    int rowCount = 20;
    HSSFSheet sheet = workbook.createSheet("sheet name");
    //创建第一栏
    HSSFRow headRow = sheet.createRow(0);
    String[] titleArray = {"id", "name", "age", "email", "address", "phone"};
    for(int m=0;m<=columeCount-1;m++)
    {
        HSSFCell cell = headRow.createCell(m);
        cell.setCellType(HSSFCell.CELL_TYPE_STRING);
        sheet.setColumnWidth(m, 6000);
        HSSFCellStyle style = workbook.createCellStyle();
        HSSFFont font = workbook.createFont();
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        short color = HSSFColor.RED.index;
        font.setColor(color);
        style.setFont(font);
        //填写数据
        cell.setCellStyle(style);
        cell.setCellValue(titleArray[m]);

    }
    int index = 0;
    //写入数据
    for(RowEntity entity : pRowEntityList)
    {
        //logger.info("写入一行");
        HSSFRow row = sheet.createRow(index+1);
        for(int n=0;n<=columeCount-1;n++)
            row.createCell(n);
        row.getCell(0).setCellValue(entity.getId());
        row.getCell(1).setCellValue(entity.getName());
        row.getCell(2).setCellValue(entity.getAge());
        row.getCell(3).setCellValue(entity.getEmail());
        row.getCell(4).setCellValue(entity.getAddress());
        row.getCell(5).setCellValue(entity.getPhone());
        index++;
    }

继续阅读->

分享到:
评论

相关推荐

    java poi 读写excel

    遗憾的是,提供的文件列表中只有`jeebbs-db-3.sql`,这似乎是一个SQL数据库文件,与Java POI读写Excel的主题并不直接相关。通常,SQL文件用于导入或导出数据库的数据,如果博客作者有提到结合Java POI与SQL操作Excel...

    poi读写excel+poi总结

    在本文中,我们将深入探讨如何使用POI进行Excel的读写操作,并进行总结。 1. POI基本概念 Apache POI 提供了HSSF(Horrible Spreadsheet Format)用于读写旧版的.xls格式的Excel文件,而XSSF则用于处理.xlsx格式的...

    java用poi读写excel表

    本文将详细介绍如何使用POI库在Java中进行Excel的读写操作,以及一个在Eclipse环境中运行的实例。 首先,我们需要了解Apache POI的基本概念。POI是Apache软件基金会的一个开源项目,它提供了Java API来处理...

    java poi 读写Excel jar包

    在标题"java poi 读写Excel jar包"中,我们关注的核心知识点是Java POI库的使用,以及如何在Java程序中处理Excel文件的读写操作。要实现这些功能,你需要下载相应的jar包。描述中提到的链接指向了一个CSDN博客文章,...

    java读写Excel,POI.JAR,Word内容读取

    java读写Excel,POI.JAR,Word内容读取

    POI读写excel(.xls/.xlsx)的Demo

    在这个"POI读写excel(.xls/.xlsx)的Demo"中,我们将深入探讨如何使用Apache POI库在Java中读取和写入Excel文件。 1. **Apache POI库介绍** Apache POI 提供了 HSSF(Horrible Spreadsheet Format)和 XSSF(XML ...

    java poi导出图片到excel示例代码

    Java POI导出图片到Excel示例代码详解 Java POI是Java开发中常用的开源库,用于读写Microsoft Office文件格式,包括Excel、Word、PowerPoint等。...同时,本文还介绍了Java POI读写Excel文件的基本原理和实现方式。

    java poi导出excel

    Java POI库是Apache软件基金会开发的一个开源项目,专门用于读写Microsoft Office格式的文件,包括Excel。在Java中,如果你需要导出Excel文件,Java POI是一个非常实用的工具。下面将详细介绍如何使用Java POI来实现...

    Java POI 生成Excel时显示货币格式

    Java POI是一个开源的API,用于读写Microsoft Office格式的文件,包括Excel、Word和PowerPoint等。它由Apache Software Foundation维护,广泛应用于各种企业级项目中。对于Excel操作,Java POI提供了HSSF(对应.xls...

    java中poi读写excel封装工具类(兼容office2003和2007等版本)

    以下是对"java中poi读写excel封装工具类"这一主题的详细解释。 1. **Apache POI介绍** Apache POI是一个开源项目,允许Java开发者创建、修改和显示Microsoft Office文件,包括Excel、Word和PowerPoint。它的核心...

    ExcelDemo_Excel导出_下载_POI读excel_JXL读写excel_java读写excel_列宽_读取合并或拆分单元格内容

    总的来说,Java开发者可以通过Apache POI和JExcelAPI轻松地读写Excel文件,进行各种操作,如设置列宽、处理合并或拆分的单元格。理解并熟练掌握这些库,将极大地提升你在处理Excel数据时的效率。在实际项目中,根据...

    java poi处理excel数据

    Java POI是Apache软件基金会下的一个开源项目,主要用于读写Microsoft Office格式的文件,特别是Excel。在Java开发中,当你需要处理Excel数据时,POI库是一个强大的工具。本压缩包包含了一些关键资源,帮助你理解和...

    java的poi读写excel项目实例

    在这个“java的poi读写excel项目实例”中,我们有两个主要的Java类:`read.java`和`write.java`,分别用于处理Excel文件的读取和写入操作。 首先,让我们深入了解一下`read.java`。这个类通常会包含一个方法,比如`...

    Java Poi 操作excel的API 好用

    Java POI 是一个开源项目,专门用于处理Microsoft Office格式的文件,尤其是Excel。它提供了丰富的API,使得在Java环境中操作Excel文件变得极其便捷。本文将深入探讨Java POI的使用,包括其核心功能、API使用示例...

    java poi 操作Excel

    在Java世界中,如果你想对Excel进行读写操作,POI库是不可或缺的工具。下面将详细介绍如何使用Java POI来操作Excel以及相关的知识点。 1. **基本概念** - HSSF(Horrible Spreadsheet Format):这是POI库处理...

    最新POI Lib Java Excel转换成Txt

    Apache POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。目前POI已经有了Ruby版本。 结构: •HSSF - 提供读写Microsoft Excel XLS格式档案的功能。 •XSSF - 提供读写Microsoft Excel OOXML XLSX...

    POI读写excel文件+poi简单文档

    总的来说,“POI读写excel文件+poi简单文档”涵盖了Apache POI在Java环境中处理Excel文件的基础和进阶知识,是学习和使用POI进行Excel操作的重要参考资料。通过学习和实践,开发者可以轻松地在Java程序中实现Excel...

    Java POI下载Excel模板 Excel带有下拉框的模板

    Java POI下载Excel模板 Excel带有下拉框的模板,并有详细注释,生成exlcel的下拉框,必填项标红,数字栏位防止科学计数法,并设置Excel标题样式

    JAVA POI导出EXCEL代码

    Java POI库是Apache软件基金会的一个项目,专门用于读写Microsoft Office格式的文件,包括Excel。在Java开发中,我们经常使用POI库来处理Excel数据,如读取、写入和修改Excel文件。本篇文章将详细介绍如何使用JAVA ...

Global site tag (gtag.js) - Google Analytics