Java后台读取excel表格返回至Web前端

摘要:
如果您连接到数据库,系统的难度将降低;这一次,我意识到了数据库的便利性(但云存储似乎在未来更受欢迎);例如,让我们查询并列出所有数据。数据库中的每个表和列都有一个列名。通常的方法是遍历数据库表。dao层使用列表存储实体对象集。数据库表中的每一行记录实体的每个属性:publicList<帐户>list(){Stringsql=“select*fromeaccount”;

如果是做连接数据库的话,系统难度就降低了不少;
这次本人也算是体会到数据库的方便了吧(不过以后云储存好像会更受欢迎些);
比如说查询列出所有数据吧:
数据库每个表每一列都有列名,正常的做法是遍历数据库表,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层,稍加改动)

Java后台读取excel表格返回至Web前端第1张

记录一下过程小错:

Java后台读取excel表格返回至Web前端第2张

提示空指针异常,也就是出现了为空的地方,可以理解为参数未传递成功问题,看提示:

意思像是它读不懂以下包:

Java后台读取excel表格返回至Web前端第3张

声明:我之前已经给项目配置了路径;

但是,任需要将jar包存入lib下如图:

Java后台读取excel表格返回至Web前端第4张

免责声明:文章转载自《Java后台读取excel表格返回至Web前端》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇函数中的动态参数JVM(java 虚拟机)内存设置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java后台中处理图片辅助类汇总(上传图片到服务器,从服务器下载图片保存到本地,缩放图片,copy图片,往图片添加水印图片或者文字,生成二维码,删除图片等)

最近工作中处理小程序宝箱活动,需要java画海报,所以把这块都快百度遍了,记录一下处理的方法,百度博客上面也有不少坑! 获取本地图片路径: String bgPath = Thread.currentThread().getContextClassLoader().getResource("/").getPath().replaceAll("WEB-INF...

MyBatis映射文件(编写SQL语句;可有可无(无的时候,使用注解编程))

 一、映射文件  1.简单的增删改(需要commit)---查 MyBatis允许增删改直接定义以下类型返回值   Integer、Long、Boolean、void 我们需要手动提交数据。   sqlSessionFactory.openSession();===>需要手动提交   sqlSessionFactory.openSession(tr...

Jsr303数据校验

空检查 @Null 验证对象是否为null @NotNull 验证对象是否不为null, 无法查检长度为0的字符串 @NotBlank 检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格. @NotEmpty 检查约束元素是否为NULL或者是EMPTY. Booelan检查 @AssertTrue 验证 Boolean...

自定义标签

在实际的开发中,如为了简化JSP中出现大量的JSP脚本,那么我们需要使用标准标签库和EL表达式,但是和新标签库中提供的标签是有限的,不可能完全满足开发的需要。如:分页。因此需要学习如何自定义自己的标签库。 如果要实现自定义标签,那么需要如下几步: 编写标签处理类 需要继承或者实现相关的类或者接口 编写标签描述文件 该文件是一个XML文件,而且必须放在网站的...

Node.js源码初探~我很好奇

前言: 最近在看Node.js,看了一段时间后便想着看看Node.js源码,自己本地调试调试;现在便说说这个过程中的坑,以及一些需要注意的地方;       Node.js需要一定C++基础,建议看完C++Primer再看,否则V8的好多表达方式,指针,引用,模板之类的会看不懂;       代码已上传GitHub地址:   https://github....

string 转 LPCTSTR

(1)在ANSI字符集下 LPCTSTR想当于LPCSTR,当中L指long。P指Point,C指Const。在程序中能够直接用char*类型的数据对LPCSTR进行赋值,用下述语句: LPCSTR a1= "abc"; string a2 = "abcde"; a1 = a2.c_str(); (2)在Unicode字符集下 LPCTSTR相当于LPC...