Excel文件数据导入到后台保存倒数据库
后台代码数据解析:
方法一: (简单点)
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.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 org.springframework.stereotype.Controller; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List; /**
* 读取Excel
* @author wf
*/
public class ReadExcelUtils { /**
* 解析xlsx,xls
* @param filepath
* @return
* @throws IOException
*/
public void ReadExcelXlsx(String filepath) throws IOException {
File files = new File(filepath);
InputStream isd = new FileInputStream(files);
XSSFWorkbook xssfWorkbook = new XSSFWorkbook(isd);
// 获取每一个工作薄
for (int numSheet = 0; numSheet < xssfWorkbook.getNumberOfSheets(); numSheet++) {
XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(numSheet);
if (xssfSheet == null) {
continue;
}
// 获取当前工作薄的每一行
for (int rowNum = 1; rowNum <= xssfSheet.getLastRowNum(); rowNum++) {
XSSFRow xssfRow = xssfSheet.getRow(rowNum);
BudgetAssessManagement em = new BudgetAssessManagement();
if (xssfRow != null) {
System.out.println(xssfRow.getCell(0));
System.out.println(xssfRow.getCell(1));
...
}
}
}
} //转换数据格式
public String getValue(XSSFCell xssfRow) {
if (xssfRow.getCellType() == xssfRow.CELL_TYPE_BOOLEAN) {
return String.valueOf(xssfRow.getBooleanCellValue());
} else if (xssfRow.getCellType() == xssfRow.CELL_TYPE_NUMERIC) {
return String.valueOf(xssfRow.getNumericCellValue());
} else {
return String.valueOf(xssfRow.getStringCellValue());
}
} /**
* 解析xls
* @param filepath
* @return
* @throws IOException
*/
public String ReadExcelUtilsdd(String filepath) throws IOException {
InputStream is = new FileInputStream(filepath);
HSSFWorkbook hssfWorkbook = new HSSFWorkbook(is);
// 获取每一个工作薄
for (int numSheet = 0; numSheet < hssfWorkbook.getNumberOfSheets(); numSheet++) {
HSSFSheet hssfSheet = hssfWorkbook.getSheetAt(numSheet);
if (hssfSheet == null) {
continue;
}
// 获取当前工作薄的每一行
for (int rowNum = 1; rowNum <= hssfSheet.getLastRowNum(); rowNum++) {
HSSFRow hssfRow = hssfSheet.getRow(rowNum);
if (hssfRow != null) {
HSSFCell one = hssfRow.getCell(0);
//读取第一列数据
HSSFCell two = hssfRow.getCell(1);
//读取第二列数据
HSSFCell three = hssfRow.getCell(2);
//读取第三列数据
}
}
}
return null;
}
// 转换数据格式
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());
}
} /* public static void main(String[] args) {
try {
String filepath = "C:\\Users\\LENOVO\\Desktop\\22.xlsx";
// ReadExcelUtils(filepath);
} catch (Exception e) {
System.out.println("未找到指定路径的文件!");
}
}*/ }
所需解析所需jar包
dom4j-1.6.1.jar
poi-3.8-20120326.jar
poi-ooxml-3.8-20120326.jar
poi-ooxml-schemas-3.8-20120326.jar
xmlbeans-2.3.0.jar 方法二:
Excel读取,创建Excel 缺点就是只能操作2007还是2003Excel记不清了。。。试试 package com.yc.qecmm;
import java.io.File;
import java.io.IOException;
import java.util.LinkedList;
import java.util.List; import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest; import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
import jxl.write.Label;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException; /**
*
* @ClassName: ExcelOperate
* @Description: TODO(使用jxl简单实现Excel导入导出)
* @author wf
*
*/ public class ExcelOperate {
int col=100,row =100;
/**
* @Title: ExcelOperate
* @Description: TODO(读取excel文件里的内容)
* @param @param path 设定文件
* @return @param path 返回类型
* @throws
*/
public List<DrugsEntity> readExcel(HttpServletRequest request,File file){
List<DrugsEntity> drglist = new LinkedList<DrugsEntity>();
//重新获得VariableDrugsEntity放置map中传递到页面
ServletContext contt = request.getServletContext();
VariableDrugsEntity var =(VariableDrugsEntity) contt.getAttribute("v");
StringBuffer sb = new StringBuffer();
try {
Workbook book = Workbook.getWorkbook(file);//拿到excel工作空间
try{
Sheet sheet = book.getSheet(0);
col = book.getSheet(0).getColumns();//获取excel文件有列
row = book.getSheet(0).getRows();//获取excel文件有行
var.setTotle(row - 1);
System.out.println(col+"=="+row);
for(int i = 1 ; i < row ; i++){
DrugsEntity dr =new DrugsEntity();
for(int j = 1 ; j < col ; j++){
//第一个参数代表列,第二个参数代表行。(默认起始值都为0)
try{
Cell jj =sheet.getCell(j, i);//获取excel单个格子
if(jj!=null){
String cont=jj.getContents();//获取格子的内容
if(j==1){
dr.setJhc(cont);
}else if(j==2){
dr.setYoqhs(cont);
}else if(j==3){
dr.setAws(cont);
}else if(j==4){
dr.setHfy(cont);
}else if(j==5){
dr.setGg(cont);
}
sb.append(cont+"\t");
}
/* //判断羌的种类和等级
MathUntile ma = new MathUntile();
//dr = ma.SpecCalculation(dr);
dr = ma.QualityLevel(request,dr);*/
}catch(Exception e){
System.out.println("这个表格没有值");
}
}
drglist.add(dr);
sb.append("\n");
}
}finally{
if(book != null){
book.close();
}
}
} catch (BiffException e) {
System.err.println(e+"");
} catch (IOException e) {
System.err.println(e+"文件读取错误");
}
return drglist;
}//end readFromFile
//往excel中写
public void writeToFile(List<DrugsEntity> list,String path){
File file = new File(path);
try {
WritableWorkbook book = Workbook.createWorkbook(file);
//创建一个工作区。(默认的excel文件有三个sheet,在excel的左下角可以看到sheet1/sheet2/sheet3)
WritableSheet sheet = book.createSheet("第一页", 0);
//在工作区上面添加内容
System.out.println("wowowowo="+col+"=="+row);
try {
for(int i = 0; i < col ; i ++ ){
for(int j = 0 ; j <row ; j++){
Label newLabel =new Label(0,0,"序号");
//第一个参数代表列,第二个参数代表行(默认起始值都为0),
//第三个参数是要在单元格里面填写的内容发
if(j == 0){
if(i==0){
newLabel = new Label(i,j,"序号");
}else if(i==1){
newLabel = new Label(i,j,"表头");
}else if(i==2){
newLabel = new Label(i,j,"表头");
}....等
}else if(j>0){
if(i==0){
newLabel = new Label(i,j,String.valueOf(j));
}else if(i==1){
newLabel = new Label(i,j,list.get(j-1).getQhc());
}else if(i==2){
newLabel = new Label(i,j,list.get(j-1).getYoqhs());
}...等
}
//在单元格上面添加注释
// WritableCellFeatures cellFeatures = new WritableCellFeatures();
// cellFeatures.setComment("这里是"+i+"*"+j+"的值");
// System.out.println("这里是"+i+"*"+j+"的值");
// newLabel.setCellFeatures(cellFeatures);newLabel.
sheet.addCell(newLabel);
}
}
} catch (RowsExceededException e) {
System.err.println(e+"行或列参数错误!");
} catch (WriteException e) {
System.err.println(e+"写入失败");
}finally{
if(book != null){
book.write();
try {
book.close();
} catch (WriteException e) {
System.err.println(e+"文件关闭失败!");
}
}
}
} catch (IOException e) {
System.err.println(e+"创建文件失败!");
}
}
} 注意自己使用时需要修改个别地方
做需要的核心jar包 jxl.jar
Excel文件数据导入到后台保存倒数据库的更多相关文章
- 将Excel文件数据导入到SqlServer数据库的三种方案
方案一: 通过OleDB方式获取Excel文件的数据,然后通过DataSet中转到SQL Server,这种方法的优点是非常的灵活,可以对Excel表中的各个单元格进行用户所需的操作. openFil ...
- pl/sql 如何将Excel文件数据导入oracle的数据表?
1.准备导入数据的excel文件 注意:excel列名和数据表列名必须相同,excel文件sheet2和sheet3可以删除 1)excel文件格式 2)数据表格式 2.打开pl/sql ,找到工具- ...
- java读取excel文件数据导入mysql数据库
这是我来公司的第二周的一个小学习任务,下面是实现过程: 1.建立maven工程(方便管理jar包) 在pom.xml导入 jxl,mysql-connector 依赖 可以在maven仓库搜索 2.建 ...
- 将 excel文件数据导入MySQL数据库中
第一步:先将Excel文件另存为文本文件(制表符分割) 第二步:将生成的txt文件另存,并修改编码格式utf8; 第三步:将文件放到指定位置,或自己想要的位置: G:\city.txt 第四步:避免创 ...
- larave5.6 将Excel文件数据导入数据库代码实例
<?php namespace App\Admin\Controllers; use App\AdminUser; use Illuminate\Http\Request; use Excel; ...
- springMVC(5)---导入excel文件数据到数据库
springMVC(5)---导入excel文件数据到数据库 上一篇文章写了从数据库导出数据到excel文件,这篇文章悄悄相反,写的是导入excel文件数据到数据库.上一篇链接:springMVC(4 ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- SSM excel文件的导入导出
对于excel文件的导入导出,后台接收读取和建表封存都是固定死的,所以对于excel导入时,excel文件内容必须匹配后台相关对象,不然报错. excel文件导出,用<a><a/&g ...
- 使用PHPExcel实现Excel文件的导入和导出(模板导出)
在之前有写过一篇文章讲述了使用PHP快速生成excel表格文件并下载,这种方式生成Excel文件,生成速度很快,但是有缺点是:1.单纯的生成Excel文件,生成的文件没有样式,单元格属性(填充色,宽度 ...
随机推荐
- struts2+springmvc+hibernate开发。个人纪录
对于很多新手来说,都不太清楚应该怎么去放置代码并让他成为一种习惯.个人的总结如下: 一.基础包类的功能 1.dao :提供底层接口 2.daoimpl:实现底层接口类,与底层交互 3.entity:实 ...
- 安卓入门——————简单记账本的开发(用sqlite存储数据)(一)
设计思想————首先要确定有几个页面.和每个页面的大致布局 由于是入门,我也是学习了不是很长的时间,所以项目比较low.... 第一个页面,也就是打开APP的首页面: 今天这个博客,先实现添加功能!: ...
- 对象序列化Serializable
一.Java对象的存储 首先我们先来理解一下Java对象在内存中的存储! JVM的内存分为三个部分:栈(stack).堆栈(heap).方法区(method area): 栈:主要存储基本数据类型变量 ...
- hadoop(原生及CDH发行版)关键目录、配置文件及服务对应文件名详解
四个最主要的配置文件(原生版本位于$HADOOP_HOME\etc\hadoop目录):mapred-site.xmlcore-site.xmlhdfs-site.xmlyarn-site.xml 在 ...
- 20175312 2018-2019-2 《Java程序设计》第7周学习总结
20175312 2018-2019-2 <Java程序设计>第7周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第八章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...
- <工厂方法>比<简单工厂>多了啥
前言:多注重设计.仅当复习讨论! 简单工厂模式 UML图 假如有一位爱心人士,想给饥饿的流浪动物喂食.此时爱心人士身带了狗粮,但是他到处找啊找,最终只找到了猫大人,是不是有点惨兮兮.但是如果有简单 ...
- Visual Studio 2017 注册码
Visual Studio 2017(VS2017) 企业版 Enterprise 注册码:NJVYC-BMHX2-G77MM-4XJMR-6Q8QF Visual Studio 2017(VS201 ...
- linux如何查看所有的用户和组信息?
cat /etc/passwd cat /etc/passwd查看所有的用户信息,详情如下图 [步骤二]cat /etc/passwd|grep 用户名 cat /etc/passwd|grep ...
- 关于两栏布局,三栏布局,一级点击三角触发select的onchange事件问题
首先看这样一个效果:,这个截图来自移动端的列表的一整行,在这个效果当中,存在两个技术点,首先选择祝福卡这个宽度是一定的,右边的部分,宽度随着手机屏幕的宽度而自适应,再一个技术点就是点击最右侧向下箭头, ...
- js实现bind方法
//目标函数 function fun(...args) { console.log(this); console.log(args); } //目标函数原型对象上的一个方法cher func.pro ...