apache-poi操作excel文档示例

一、基本思想:

关于办公文档插件使用的基本思想:把办公文档的所有元素封装成普通的Java类,
程序员通过操作这些类达到操作办公文档目的。

二、apache-poi对excel操作对应的类:

  • 一个excel文件-------------HSSFWorkbook类
  • 页----------------HSSFSheet类
  • 行----------------HSSFRow类
  • 列----------------HSSFCell类
  • 样式-------------HSSFCellStyle类

三、生成一个excel示例:

  • 添加maven依赖:
<dependency>
      <groupId>org.apache.poi</groupId>
      <artifactId>poi</artifactId>
      <version>3.15</version>
    </dependency>
  • demo代码 :
public class Demo {
    public static void main(String[] args) throws IOException {
        //操作逻辑:文件---->页---->行----->列

        //workbook对象对应的是一个excel文件
        HSSFWorkbook workbook = new HSSFWorkbook();
        //使用workbook对象创建 excel文件中的一页sheet
        HSSFSheet sheet = workbook.createSheet();
        //在页中创建一行,参数 int rownum: 在第几行创建,编号从0开始
        HSSFRow row = sheet.createRow(0);
        //在行里创建列,参数 column:第几列,也是从0开始
        HSSFCell cell = row.createCell(0);
        cell.setCellValue("学号");

        cell= row.createCell(1);
        cell.setCellValue("姓名");

        cell=row.createCell(2);
        cell.setCellValue("年龄");

        //生成样式对象
        HSSFCellStyle cellStyle = workbook.createCellStyle();
        cellStyle.setAlignment(HorizontalAlignment.CENTER); //居中


        for (int i = 1; i <=10 ; i++) {
            //循环一次写入一行数据
            row=sheet.createRow(i);  //第i行
            cell=row.createCell(0);  //(i,1)  第i行的第一列
            cell.setCellValue("学号"+i);
            cell= row.createCell(1); //(i,2)  第i行的第二列
            cell.setCellValue("姓名:"+i);
            cell=row.createCell(2);  //(i,3)
            cell.setCellValue("age:"+i);
            cell.setCellStyle(cellStyle);   //将第三列的样式设置为居中
        }

        //生成excel文件:
        OutputStream os = new FileOutputStream("F:\\资源\\demo\\students.xls");//文件夹必须已经存在
        workbook.write(os);
        os.close();
        workbook.close();
    }
}
  • 效果图:
    在这里插入图片描述

四、解析一个excel文件实例:

  • 思路:
    • 1)将excel文件读取进入内存
    • 2)将excel文件转换成workbook对象
    • 3)获取excel文件中的第几页sheet,转换成SHHFSheet对象
    • 4)遍历获取行(SHHFSheet)和列(SHHFRow)
package apachePoi;
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 java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
/**
 * 解析excel文件
 *
 * @Author leiHua
 * @Date 2022/10/14 12:31
 */
public class ParseExcelDemo {
    public static void main(String[] args) throws IOException {
        //将excel文件 转换成workbook对象
        InputStream is = new FileInputStream("F:\\MyCode\\java\\我的项目\\crm-project\\crm\\src\\main\\webapp\\serverDir\\activityList.xls");
        HSSFWorkbook workbook = new HSSFWorkbook(is);
        //将excel文件中第一页信息封装成SheetAt对象
        HSSFSheet sheet = workbook.getSheetAt(0);
        HSSFRow row = null;
        HSSFCell cell = null;

        for (int i = 0; i <= sheet.getLastRowNum(); i++) {  //getLastRowNum:  获取该页中最后一行的下标
            row = sheet.getRow(i);
            //遍历每行中的列
            for (int j = 0; j < row.getLastCellNum(); j++) {
                cell = row.getCell(j);
                if (cell.getCellType() == HSSFCell.CELL_TYPE_BOOLEAN) {  //如果类型是boolean
                    System.out.print(cell.getBooleanCellValue() + " ");
                } else if (cell.getCellType() == HSSFCell.CELL_TYPE_FORMULA) { //如果是公式类型
                    System.out.print(cell.getCellFormula() + " ");
                } else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) {  //如果是字符串类型的
                    System.out.print(cell.getStringCellValue() + " ");
                } else if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {  //数字类型
                    System.out.print(cell.getNumericCellValue() + " ");
                } else {
                    System.out.print("" + " ");
                }
            }
            System.out.println(); //换行
        }
    }
}

运行结果:在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,我会为您提供一个简单的 Apache POI 工具类的使用示例。 首先,您需要在您的项目中引入 Apache POI 的依赖包,如果您使用 Maven,可以在 `pom.xml` 文件中添加以下代码: ```xml <dependencies> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi</artifactId> <version>3.17</version> </dependency> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>3.17</version> </dependency> </dependencies> ``` 接下来,我们可以创建一个简单的 Java 类来演示如何使用 Apache POI。 ```java import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ExcelWriter { public static void main(String[] args) { XSSFWorkbook workbook = new XSSFWorkbook(); XSSFSheet sheet = workbook.createSheet("Sheet1"); // 创建第一行并填写数据 Row row = sheet.createRow(0); Cell cell1 = row.createCell(0); cell1.setCellValue("姓名"); Cell cell2 = row.createCell(1); cell2.setCellValue("年龄"); // 创建第二行并填写数据 Row row2 = sheet.createRow(1); Cell cell3 = row2.createCell(0); cell3.setCellValue("张三"); Cell cell4 = row2.createCell(1); cell4.setCellValue(20); // 将数据写入 Excel 文件 try { FileOutputStream outputStream = new FileOutputStream(new File("output.xlsx")); workbook.write(outputStream); workbook.close(); outputStream.close(); System.out.println("数据写入成功"); } catch (IOException e) { e.printStackTrace(); } } } ``` 以上代码将创建一个名为 `Sheet1` 的 Excel 表格,并在第一行填写了 `姓名` 和 `年龄` 字段,第二行填写了 `张三` 和 `20` 的数据。最后将数据写入名为 `output.xlsx` 的 Excel 文件中。 希望这个简单的示例能够帮助您了解 Apache POI 的使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值