Java的poi技术怎样读取和导入Excel
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这期内容当中小编将会给大家带来有关Java的poi技术怎样读取和导入Excel,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。项目结构:用到的Excel文件:XlsM
千家信息网最后更新 2025年11月09日Java的poi技术怎样读取和导入Excel
这期内容当中小编将会给大家带来有关Java的poi技术怎样读取和导入Excel,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。
项目结构:
用到的Excel文件:
XlsMain .java 类
//该类有main方法,主要负责运行程序,同时该类中也包含了用poi读取Excel(2003版)
import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; 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; /** * * @author Hongten * * 参考地址:http://hao0610.iteye.com/blog/1160678 * */ public class XlsMain { public static void main(String[] args) throws IOException { XlsMain xlsMain = new XlsMain(); XlsDto xls = null; List list = xlsMain.readXls(); try { XlsDto2Excel.xlsDto2Excel(list); } catch (Exception e) { e.printStackTrace(); } for (int i = 0; i < list.size(); i++) { xls = (XlsDto) list.get(i); System.out.println(xls.getXh() + " " + xls.getXm() + " " + xls.getYxsmc() + " " + xls.getKcm() + " " + xls.getCj()); } } /** * 读取xls文件内容 * * @return List对象 * @throws IOException * 输入/输出(i/o)异常 */ private List readXls() throws IOException { InputStream is = new FileInputStream("pldrxkxxmb.xls"); HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is); XlsDto xlsDto = null; List list = new ArrayList(); // 循环工作表Sheet for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) { HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet); if (hssfSheet == null) { continue; } // 循环行Row for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) { HSSFRow hssfRow = hssfSheet.getRow(rowNum); if (hssfRow == null) { continue; } xlsDto = new XlsDto(); // 循环列Cell // 0学号 1姓名 2学院 3课程名 4 成绩 // for (int cellNum = 0; cellNum <=4; cellNum++) { HSSFCell xh = hssfRow.getCell(0); if (xh == null) { continue; } xlsDto.setXh(getValue(xh)); HSSFCell xm = hssfRow.getCell(1); if (xm == null) { continue; } xlsDto.setXm(getValue(xm)); HSSFCell yxsmc = hssfRow.getCell(2); if (yxsmc == null) { continue; } xlsDto.setYxsmc(getValue(yxsmc)); HSSFCell kcm = hssfRow.getCell(3); if (kcm == null) { continue; } xlsDto.setKcm(getValue(kcm)); HSSFCell cj = hssfRow.getCell(4); if (cj == null) { continue; } xlsDto.setCj(Float.parseFloat(getValue(cj))); list.add(xlsDto); } } return list; } /** * 得到Excel表中的值 * * @param hssfCell * Excel中的每一个格子 * @return Excel中每一个格子中的值 */ @SuppressWarnings("static-access") private String getValue(HSSFCell hssfCell) { if (hssfCell.getCellType() == hssfCell.CELL_TYPE_BOOLEAN) { // 返回布尔类型的值 return String.valueOf(hssfCell.getBooleanCellValue()); } else if (hssfCell.getCellType() == hssfCell.CELL_TYPE_NUMERIC) { // 返回数值类型的值 return String.valueOf(hssfCell.getNumericCellValue()); } else { // 返回字符串类型的值 return String.valueOf(hssfCell.getStringCellValue()); } } } XlsDto2Excel.java类
//该类主要负责向Excel(2003版)中插入数据
import java.io.FileOutputStream; import java.io.OutputStream; import java.util.List; import org.apache.poi.hssf.usermodel.HSSFCell; import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; public class XlsDto2Excel { /** * * @param xls * XlsDto实体类的一个对象 * @throws Exception * 在导入Excel的过程中抛出异常 */ public static void xlsDto2Excel(List xls) throws Exception { // 获取总列数 int CountColumnNum = xls.size(); // 创建Excel文档 HSSFWorkbook hwb = new HSSFWorkbook(); XlsDto xlsDto = null; // sheet 对应一个工作页 HSSFSheet sheet = hwb.createSheet("pldrxkxxmb"); HSSFRow firstrow = sheet.createRow(0); // 下标为0的行开始 HSSFCell[] firstcell = new HSSFCell[CountColumnNum]; String[] names = new String[CountColumnNum]; names[0] = "学号"; names[1] = "姓名"; names[2] = "学院"; names[3] = "课程名"; names[4] = "成绩"; for (int j = 0; j < CountColumnNum; j++) { firstcell[j] = firstrow.createCell(j); firstcell[j].setCellValue(new HSSFRichTextString(names[j])); } for (int i = 0; i < xls.size(); i++) { // 创建一行 HSSFRow row = sheet.createRow(i + 1); // 得到要插入的每一条记录 xlsDto = xls.get(i); for (int colu = 0; colu <= 4; colu++) { // 在一行内循环 HSSFCell xh = row.createCell(0); xh.setCellValue(xlsDto.getXh()); HSSFCell xm = row.createCell(1); xm.setCellValue(xlsDto.getXm()); HSSFCell yxsmc = row.createCell(2); yxsmc.setCellValue(xlsDto.getYxsmc()); HSSFCell kcm = row.createCell(3); kcm.setCellValue(xlsDto.getKcm()); HSSFCell cj = row.createCell(4); cj.setCellValue(xlsDto.getCj()); (xlsDto.getMessage()); } } // 创建文件输出流,准备输出电子表格 OutputStream out = new FileOutputStream("POI2Excel/pldrxkxxmb.xls"); hwb.write(out); out.close(); System.out.println("数据库导出成功"); } } XlsDto .java类
//该类是一个实体类
public class XlsDto { /** * 选课号 */ private Integer xkh; /** * 学号 */ private String xh; /** * 姓名 */ private String xm; /** * 学院 */ private String yxsmc; /** * 课程号 */ private Integer kch; /** * 课程名 */ private String kcm; /** * 成绩 */ private float cj; public Integer getXkh() { return xkh; } public void setXkh(Integer xkh) { this.xkh = xkh; } public String getXh() { return xh; } public void setXh(String xh) { this.xh = xh; } public String getXm() { return xm; } public void setXm(String xm) { this.xm = xm; } public String getYxsmc() { return yxsmc; } public void setYxsmc(String yxsmc) { this.yxsmc = yxsmc; } public Integer getKch() { return kch; } public void setKch(Integer kch) { this.kch = kch; } public String getKcm() { return kcm; } public void setKcm(String kcm) { this.kcm = kcm; } public float getCj() { return cj; } public void setCj(float cj) { this.cj = cj; } }后台输出:
数据库导出成功
1.0 hongten 信息技术学院 计算机网络应用基础 80.0
2.0 王五 信息技术学院 计算机网络应用基础 81.0
3.0 李胜基 信息技术学院 计算机网络应用基础 82.0
4.0 五班古 信息技术学院 计算机网络应用基础 83.0
5.0 蔡诗芸 信息技术学院 计算机网络应用基础 84.0
上述就是小编为大家分享的Java的poi技术怎样读取和导入Excel了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。
学院
技术
信息
基础
网络
网络应用
计算机
应用
课程
循环
输出
内容
姓名
学号
成绩
数据
文件
类型
成功
一行
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
系统服务器繁忙能挤进去吗
uc浏览器删除服务器记录
网络安全有奖问答方案
亚马逊的服务器是多少
putty管理服务器
软件开发流程格式
计算机网络技术专业属于二建
小学网络安全保护技术措施
绝地求生哪个区服务器好
软件开发有工作经验的面试
北京华云互联网络科技
部队数据库职工工资核算
网络安全班报名
没网如何访问主服务器的ip
数据库中如何插入多个行
如何开展好网络安全执法
运行管理员如何连接服务器
金蝶用户数据库表名清除密码
网络技术的发展造福和造孽
互联网网络安全专报
java数据库锁表怎么锁
pdms数据库管理员的费用多少
品牌网络技术服务价格信息
凡科 服务器
吕梁移动网络安全宣传
最好的邮件服务器
数据库热块问题
高校网络安全平台
软件开发公司做财务怎么样
银行软件开发管理