Java后台读取excel表格返回至Web前端
如果是做连接数据库的话,系统难度就降低了不少;
这次本人也算是体会到数据库的方便了吧(不过以后云储存好像会更受欢迎些);
比如说查询列出所有数据吧:
数据库每个表每一列都有列名,正常的做法是遍历数据库表,dao层利用list储存实体对象集,
数据库表中每一行记录一个实体的各个属性:
public List<Account> list() {
String sql = "select * from account";
List<Account> list = new ArrayList<>();
Connection conn = Shujuku.conn();
Statement state = null;
ResultSet rs = null;
try {
state = conn.createStatement();
rs = state.executeQuery(sql);
Account bean = null;
while (rs.next()) {
String a = rs.getString("name");//name为数据库列名
String b = rs.getString("amount");
String c = rs.getString("money");
String d = rs.getString("time");
bean = new Account(a,b,c,d);//每一行创建一个实体
list.add(bean);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
Shujuku.close(rs, state, conn);
}
return list;
}
连接excel表,同理:因为没有列名,所以直接定义一个即可;(前提假设本人直到表的构造)
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.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook; import entity.Bus; public class ExcelTest {
public static void main(String[] args) throws IOException{ /**
* 读取表格
* 输出至前端
*/
Bus bus=null;
List<Bus> list = new ArrayList<>();
String filePath="D://dns.xls";
InputStream input = new FileInputStream(filePath);
Workbook wb = null;
wb = new HSSFWorkbook(input);
//得到一个工作表对象;
Sheet sheet = wb.getSheetAt(0);
int rsRows = sheet.getLastRowNum();// 获取sheet表中的总行数 // 遍历行
//每一行成一个bus对象
for (int i=0;i<=rsRows;i++) {
Row row = sheet.getRow(i);
int id=0;
String name=null;
//遍历行单元格,已知有两列;第一列int型id,第二列String型name
Cell cell1 = row.getCell(0);
Cell cell2 = row.getCell(1);
//一定要检验是否为空
if(cell1==null||cell1.equals(null)||cell1.getCellType()==CellType.BLANK){
break;
}else {
//数值型
id=(int) cell1.getNumericCellValue();
}
if(cell2==null||cell2.equals(null)||cell2.getCellType()==CellType.BLANK){
break;
}else {
//字符串型
name= cell2.getStringCellValue();
} bus=new Bus(id,name);
list.add(bus);
System.out.print(id);
System.out.println(name);
}
wb.close();//记得关闭
}
}
运行截图:(这里将读取表格的函数放入dao层,稍加改动)

记录一下过程小错:

提示空指针异常,也就是出现了为空的地方,可以理解为参数未传递成功问题,看提示:
意思像是它读不懂以下包:

声明:我之前已经给项目配置了路径;
但是,任需要将jar包存入lib下如图:

Java后台读取excel表格返回至Web前端的更多相关文章
- postman上传excel,java后台读取excel生成到指定位置进行备份,并且把excel中的数据添加到数据库
最近要做个前端网页上传excel,数据直接添加到数据库的功能..在此写个读取excel的demo. 首先新建springboot的web项目 导包,读取excel可以用poi也可以用jxl,这里本文用 ...
- java后台读取excel模板数据
/** * 读取EXCEL模板数据 * * @param excelFilePath excel文件路径 * @param dataRowNum 开始读取数据的行数 * @param keyRowNu ...
- Java读取excel表格
Java读取excel表格 一般都是用poi技术去读取excel表格的,但是这个技术又是什么呢 什么是Apache POI? Apache POI是一种流行的API,它允许程序员使用Java程序创建, ...
- java利用poi来读取execl表格返回对象
利用poi来读取execl表格,返回一个对象(可能有点不完善,但是应该能满足平常的所用),用到了反射等等; 使用的jar包有: commons-collections4-4.1.jar poi-3.1 ...
- C#读取Excel表格中数据并返回datatable
在软件开发的过程中,经常用到从excel表格中读取数据作为数据源,以下整理了一个有效的读取excel表格的方法. DataTable GetDataTable(string tableName,str ...
- 读取Excel表格日期类型数据的时候
用POI读取Excel数据:(版本号:POI3.7) 1.读取Excel 2.Excel数据处理: Excel存储日期.时间均以数值类型进行存储,读取时POI先判断是是否是数值类型,再进行判断转化 1 ...
- 使用NPOI读取Excel表格内容并进行修改
前言 网上使用NPOI读取Excel文件的例子现在也不少,本文就是参考网上大神们的例子进行修改以适应自己需求的. 参考博文 http://www.cnblogs.com/restran/p/38894 ...
- Python读取Excel表格
前言:需要进行自动化办公或者自动化测试的朋友,可以了解下此文,掌握Python读取Excel表格的方法. 一.准备工作: 1.安装Python3.7.0(官网下载安装包) 2.安装Pycharm(官网 ...
- 读取Excel表格中数据原型
写下这篇博客来记录自己的工作,这部分功能是读取Excel表格中的数据,并通过c#中的datagridview控件将读取的数据显示出来.为了方便用户,我设计了一个read按钮,用户点击这个按钮,会弹出打 ...
随机推荐
- Java自学-操作符 三元操作符
Java的三元操作符 三元操作符 ?: 示例 1 : 三元操作符 语法:表达式?值1:值2 如果表达式为真 返回值1 如果表达式为假 返回值2 public class HelloWorld { pu ...
- Net实现阿里云开放云存储服务(OSS)
1 第一步框架搭建新建一个全新的MVC项目 (项目参考文档https://docs.aliyun.com/?spm=5176.383663.9.6.5OJI07#/pub/oss/sdk/sdk-do ...
- selenium浏览器自动化测试框架文档(修正版)
写在最前面:目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够在项目中持之以恒的实践自动化测试的团队,却依旧不是非常多.有的团队知道怎么做,做的还不够好:有的团队还 ...
- idea下java项目的打包与使用
一. 打包 (1)打开项目结构,选择Artifacts --> + --> JAR --> From modules with dependencies ... 有main方法就添加 ...
- requirejs:模块加载(require)及定义(define)时的路径理解
给新来的实习生普及下JS基本知识,看到比较好的文章 转载https://blog.csdn.net/xuxiaoping1989/article/details/52384778 接触过require ...
- MySQL数据库之互联网常用架构方案
一.数据库架构原则 高可用 高性能 一致性 扩展性 二.常见的架构方案 方案一:主备架构,只有主库提供读写服务,备库冗余作故障转移用 jdbc:mysql://vip:3306/xxdb 高可用分析: ...
- 英语46级CET外语大学词汇
whereas conj.而,却,反之 witty a.机智的:风趣的 legislation n.立法:法规 length n.程度,范围 lengthen vt.使延长 vi.变长 leopard ...
- vue.js 样式绑定
简单用法 <div v-bind:height="bindStyle"> 复杂用法 <div v-bind:style="bindStyle" ...
- 交换机 VLAN 的划分
交换机怎么划分VLAN?本次的实验很简单,就是通过VLAN的划分,使不同VLAN之间无法通信,但是相同VLAN不受影响. 实验拓扑 在一台交换机下连接三台VPC,划分VLAN,地址规划如下: 名称 接 ...
- Nginx 脚本自动进行日志切割
随着网站的运行时间越来越长,日志文件也会随之越来越大需要对Nginx日志进行切割,下面是每周六晚上自动进行日志切割的shell脚本 脚本如下: [root@jrjs ~]# vim /usr/loca ...