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文件,生成的文件没有样式,单元格属性(填充色,宽度 ...
随机推荐
- 关于BDD100k数据输入处理mask变为56*56
Mask_rcnn数据训练 Mask rcnn往里面送的是数据原图,可能没有把mask送里面,而且mask的数据 56*56,仿照coco——inspect_data重点考虑 Bounding box ...
- QString使用正则表达式快速去空格
//QString去掉空格 QString str; str.remove(QRegExp("\\s"));
- UVA11922 Permutation Transformer
思路 直接使用FHQ Treap维护即可 代码 #include <cstdio> #include <cstring> #include <algorithm> ...
- ZJOI 2017 树状数组(线段树套线段树)
题意 http://uoj.ac/problem/291 思路 不难发现,九条カレン醬所写的树状数组,在查询区间 \([1,r]\) 的时候,其实在查询后缀 \([r,n]\) :在查询 \([l,r ...
- 解决 ImportError: No module named _internal
参考: My pip is broken. _internal module cannot be imported. #5253 解决 ImportError: No module named _in ...
- 【HNOI 2016】序列
Problem Description 给定长度为 \(n\) 的序列:\(a_1, a_2, \cdots , a_n\),记为 \(a[1 \colon n]\).类似地,\(a[l \colon ...
- JQ清空select的已选择状态
$('#payment').find("option:selected").attr("selected", false);
- Linux环境——MySQL安装及配置(5.7版本)
数据库安装包下载地址:https://dev.mysql.com/downloads/mysql/ 我的环境是Linux Red Hat Enterprlse Linux (64位),本次安装的是M ...
- Selenium Chrome
Chrome版本不变 发现在 Selenium-server-standalone-2.39.0.jar 中可全屏 Selenium-server-standalone-3.8.1.jar 中不可全屏 ...
- Kotlin 扩展
Kotlin 可以对一个类的属性和方法进行扩展,且不需要继承或使用 Decorator 模式. 扩展是一种静态行为,对被扩展的类代码本身不会造成任何影响. 扩展函数 扩展函数可以在已有类中添加新的方法 ...