java读取excel中的数据
- 注意:如果写的是传统java项目请下载第一种的jar包文件,如果是maven项目直接导入依赖即可。
第一种:依赖jar包文件
文件获取:jar获取地址:https://download.csdn.net/download/laterstage/88047827
第二种:maven项目pom项目依赖
<!-- 下面两个依赖是实现 导入excel的-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.0</version>
</dependency>
<!-- 下面依赖是实现 导出excel的-->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.18</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-math3</artifactId>
<version>3.6.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>
这里是java文件
package org.example;
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.ss.usermodel.Sheet;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFRow;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import javax.swing.filechooser.FileSystemView;
import java.io.*;
/**
* Hello world!
*
*/
public class App
{
/**
* 当前方法实现的是文件的导入功能
*/
public static void inExcel() throws IOException {
//创建工作簿对象
String res="C:\\Users\\laterstage\\Desktop\\test.xlsx"; //导入路径
//创建工作簿对象
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(res));
//获取工作簿下sheet的个数
int sheetNum = xssfWorkbook.getNumberOfSheets();
System.out.println("一共有:"+sheetNum+"个表");
//遍历工作簿中的所有数据
for(int i = 0;i<sheetNum;i++) {
//读取第i个工作表的内容
System.out.println("读取第"+(i+1)+"个表");
XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
//获取最后一行的num,也就是总行数,是从第一行开始的
int maxRow = sheet.getLastRowNum();
for (int row = 0; row <= maxRow; row++) {
//获取最后单元格num,即总单元格数 ***注意:此处从1开始计数***
int maxRol = sheet.getRow(row).getLastCellNum();
System.out.println("--------第" + row + "行的数据如下--------");
for (int rol = 0; rol < maxRol; rol++){
System.out.print(sheet.getRow(row).getCell(rol) + " ");
}
System.out.println();
}
}
}
/**
* 实现将数据导出成Excel(简略版本 导出文件格式后缀.xls)
* XSSF:xlsx
* HSSF:xls
*/
public static void outExcelXls() throws IOException {
String path="C:\\Users\\laterstage\\Desktop\\outtest.xls";//导出路径
HSSFWorkbook hssfWorkbook = new HSSFWorkbook();//创建单元格
//通过hss创建sheet
HSSFSheet sheet = hssfWorkbook.createSheet("表格1");
//实现创建一行 在一行当中插入两个单元格
HSSFRow row = sheet.createRow(0);//创建第0行表格
HSSFCell cell = row.createCell(0);
cell.setCellValue("表格1-第0行0列");
HSSFCell cell1 = row.createCell(1);
cell1.setCellValue("表格1-第0行1列");
//接下来查询与分
HSSFSheet sheet2 = hssfWorkbook.createSheet("表格2");//创建第二个表格
HSSFRow row2 = sheet2.createRow(0);
HSSFCell cell2 = row2.createCell(0);
cell2.setCellValue("表格2-第0行0列");
HSSFCell cell3 = row2.createCell(1);
cell3.setCellValue("表格2-第0行1列");
File file2 = new File(path);
FileOutputStream file3 = new FileOutputStream(file2);
hssfWorkbook.write(file3);
file3.close();
}
/**
* 实现将数据导出成Excel(简略版本 导出文件格式后缀.xlsx)
* XSSF:xlsx
* HSSF:xls
*/
public static void outExcelXlsx() throws IOException {
String path="C:\\Users\\laterstage\\Desktop\\outtest.xlsx";//导出路径
//XSSF:xlsx
XSSFWorkbook xssfWorkbook = new XSSFWorkbook();//创建单元格
//通过hss创建sheet
XSSFSheet sheet = xssfWorkbook.createSheet("表格1");
//实现创建一行 在一行当中插入两个单元格
XSSFRow row = sheet.createRow(0);//创建第0行表格
XSSFCell cell = row.createCell(0);
cell.setCellValue("表格1-第0行0列");
XSSFCell cell1 = row.createCell(1);
cell1.setCellValue("表格1-第0行1列");
//接下来查询与分
XSSFSheet sheet2 =xssfWorkbook.createSheet("表格2");//创建第二个表格
XSSFRow row2 = sheet2.createRow(0);
XSSFCell cell2 = row2.createCell(0);
cell2.setCellValue("表格2-第0行0列");
XSSFCell cell3 = row2.createCell(1);
cell3.setCellValue("表格2-第0行1列");
File file2 = new File(path);
FileOutputStream file3 = new FileOutputStream(file2);
xssfWorkbook.write(file3);
file3.close();
}
public static void main( String[] args )
{
//读取表格内容
try {
//实现excel表格的导入.xlsx
App.inExcel();
//实现表格的导出后缀格式为 .xlsx
App.outExcelXlsx();
//实现表格的导出后缀格式为 .xls
App.outExcelXls();
System.out.println("导出成功");
} catch (IOException e) {
e.printStackTrace();
}
}
}
只需要将上面内容对应复制到代码当中,直接可以运行,包路径和类名称换成自己的内容即可。