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文件,生成的文件没有样式,单元格属性(填充色,宽度 ...
随机推荐
- Jquery小功能实例
下拉框内容选中左右移动 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Sele ...
- css 修改input中placeholder提示问题颜色
input::-webkit-input-placeholder, textarea::-webkit-input-placeholder { color: rgba(74, 87, 103, 1); ...
- 【搭建】MongoDB在Linux环境的搭建
环境:Linux CentOS6.5,mongo 4.1.6 一.下载安装 1.创建mongo的安装文件夹,以及安装包上传路径 mkdir /opt/module mkdir /opt/softwar ...
- mui中confirm在苹果出现bug,confirm点击确定跳转页面再返回后,页面被遮罩盖住无法使用
项目中使用confirm mui.confirm('您还未抽奖,现在去抽奖吗?', function (res) { if (res.index === 1) { window.location.hr ...
- 面试被问之-----sql优化中in与exists的区别
曾经一次去面试,被问及in与exists的区别,记得当时是这么回答的:''in后面接子查询或者(xx,xx,xx,,,),exists后面需要一个true或者false的结果",当然这么说也 ...
- Moqui 代码解释
Service: entity-find 和 entity-find-one 的区别: <entity-find entity-name="" list="&quo ...
- webpack的css样式文件加载依赖
1.需要两个依赖包: npm i style-loader css-loader -D
- 处理npm publish报错问题
上传项目到npm-->为社会做贡献 首先你得有一个项目 npm init 生成package.json 来设置相信息 注册登录npm:npm adduser 输入你的一些信息 查看当前npm登录 ...
- hadoop配置项笔记 - hdfs
hadoop版本:3.1.1 core-site.xml dfs.namenode.rpc-address 作用:rpc地址.我在使用distcp时显式使用到了. 默认值:port是8020 我的设置 ...
- magic_quotes_gpc的作用
magic_quotes_gpc设置是否自动为GPC(get,post,cookie)传来的数据中的\'\"\\加上反斜 线.可以用get_magic_quotes_gpc()检测系统设置. ...