Java使用poi操作excel实例解析

作者:Past_Future 时间:2022-01-26 00:15:41 

本文实例为大家分享了Java使用poi操作excel的具体代码,供大家参考,具体内容如下

依赖poi的jar包,pom.xml配置如下:


<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>excelDemo1</groupId>
<artifactId>excelDemo1</artifactId>
<packaging>war</packaging>
<version>0.0.1-SNAPSHOT</version>
<name>excelDemo1 Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
 <dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>3.8.1</version>
  <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>org.apache.poi</groupId>
 <artifactId>poi</artifactId>
 <version>3.8</version>
 </dependency>
</dependencies>
<build>
 <finalName>excelDemo1</finalName>
</build>
</project>

 相应的java测试代码分别如下:


package excelDemo1;

import java.io.File;
import java.io.FileOutputStream;
import java.io.OutputStream;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ExcelDemo0 {
 /**
  * java生成excel文件并写入磁盘
  *
  * @author:tuzongxun
  * @Title: main
  * @param@param args
  * @return void
  * @date Apr 28,2016 7:32:52 PM
  * @throws
  */
 public static void main(String[] args) {
   //C:\Users\tuzongxun123\Desktop桌面,windows和linux的斜杠不一样,而且java对于“/”需要转义处理,File.separator可以实现跨平台
   File file = new File("C:" + File.separator + "Users" + File.separator
      + "tuzongxun123" + File.separator + "Desktop" + File.separator
      + "ioFile" + File.separator + "user.xls");
   try {
     OutputStream outputStream = new FileOutputStream(file);
     // 创建excel文件,注意这里的hssf是excel2007及以前版本可用,2007版以后的不可用,要用xssf
     HSSFWorkbook workbook = new HSSFWorkbook();
     // 创建excel工作表
     HSSFSheet sheet = workbook.createSheet("user");
     // 为工作表增加一行
     HSSFRow row = sheet.createRow(0);
     // 在指定的行上增加两个单元格
     row.createCell(0).setCellValue("name");
     row.createCell(1).setCellValue("password");
     // 调用输出流把excel文件写入到磁盘
     workbook.write(outputStream);
     // 关闭输出流
     outputStream.close();
   } catch (Exception e) {
     e.printStackTrace();
   }
 }
}

package excelDemo1;

import java.io.BufferedInputStream;
import java.io.File;
import java.io.FileInputStream;
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;

/**
* 读取excel文件
*
* @author tuzongxun123
*
*/
public class ExcelDemo2 {
 public static void main(String[] agrs) {
   try {
     // 获取excel文件输入流
     FileInputStream fileInputStream = new FileInputStream("C:"
        + File.separator + "Users" + File.separator
        + "tuzongxun123" + File.separator + "Desktop"
        + File.separator + "ioFile" + File.separator + "user.xls");
     BufferedInputStream bufferedInputStream = newBufferedInputStream(
        fileInputStream);
     POIFSFileSystem fileSystem = new POIFSFileSystem(
        bufferedInputStream);
     // 获取excel文件
     HSSFWorkbook hssfWorkbook = new HSSFWorkbook(fileSystem);
     // 根据名称获取指定的excel工作薄
     HSSFSheet sheet = hssfWorkbook.getSheet("user");
     // 这里实际上可以用sheet.rowIterator()来遍历
     for (int i = 1;; i++) {
      HSSFRow row = sheet.getRow(i);
      if (row != null) {
        String nameString1 = row.getCell(0).getStringCellValue();
        String password = row.getCell(i).getStringCellValue();
        System.out.println("name:" + nameString1);
        System.out.println("password:" + password);
        bufferedInputStream.close();
      } else {
        bufferedInputStream.close();
        return;
      }
     }

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

标签:Java,poi,excel
0
投稿

猜你喜欢

  • Android 使用FragmentTabHost实现底部菜单功能

    2021-06-11 12:31:52
  • Java完美实现2048小游戏

    2023-06-14 12:59:25
  • C#实现图表中鼠标移动并显示数据

    2022-10-30 20:45:30
  • Android CountDownTimer案例总结

    2023-12-21 05:40:36
  • 详解Spring Boot2 Webflux的全局异常处理

    2023-11-09 02:12:25
  • C#使用foreach语句遍历队列(Queue)的方法

    2021-09-01 04:45:01
  • SpringBoot文件上传大小设置方式(yml中配置)

    2021-09-21 09:26:47
  • SpringBoot 2.x 整合Lombok的方法示例

    2022-03-15 17:43:35
  • Java Hibernate对象(瞬时态,持久态,脱管态)详解

    2022-05-22 20:07:32
  • Netty分布式ByteBuf使用的回收逻辑剖析

    2023-07-18 23:26:26
  • Android 双击Back键退出应用的实现方法

    2023-07-06 05:41:41
  • SpringBoot LocalDateTime格式转换方案详解(前端入参)

    2022-01-05 06:48:03
  • 详解SpringBoot中的统一功能处理的实现

    2022-07-06 12:14:49
  • java 中 System.out.println()和System.out.write()的区别

    2021-09-17 04:30:52
  • Java 在游戏中探索数组二维数组

    2023-07-01 10:04:04
  • drools中使用function的方法小结

    2022-02-28 21:45:59
  • Java经典面试题最全汇总208道(五)

    2023-11-10 07:06:46
  • WPF+ASP.NET SignalR实现后台通知功能的示例代码

    2021-10-11 04:49:45
  • java连接SQL Server数据库的方法

    2022-10-14 04:16:56
  • C# SQLite执行效率的优化教程

    2021-07-11 00:11:41
  • asp之家 软件编程 m.aspxhome.com