本文所用项目为Springboot项目,基本依赖数据库配置不过多赘述!
1.后台服务端 1.1技术介绍jxl是一个开源的Java Excel API项目,通过Jxl,Java可以很方便的操作微软的Excel文档。除了Jxl之外,还有Apache的一个POI项目,也可以操作Excel,两者相比之下:Jxl使用方便,但功能相对POI比较弱,很多时候,一个软件应用程序需要生成Microsoft Excel文件格式的报告。有时,一个应用程序甚至希望将Excel文件作为输入数据。例如,一个公司开发的应用程序将财务部门需要所有输出生成自己的Excel。
1.2 所需依赖
net.sourceforge.jexcelapi
jxl
2.6.12
jexcelapi
jxl
2.4.2
1.3 测试代码
@RequestMapping(value="/upload")
@ResponseBody
public String upload_excel(@RequestParam("file") MultipartFile file, HttpServletResponse response,HttpServletRequest request)throws Exception {
File toFile = null;
if (file.equals("") || file.getSize() <= 0) {
file = null;
} else {
//需要将前端的MultipartFile 转为file,用到下面的方法,
InputStream ins = null;
ins = file.getInputStream();
toFile = new File(file.getOriginalFilename());
//工具方法在最下方
inputStreamToFile(ins, toFile);
ins.close();
}
//这种方法会在本地产生临时文件,用完后需要删除
if (toFile.exists()) {
toFile.delete();
System.out.println(1111111111);
int i;
Sheet sheet;
Workbook book;
List
2. 前端代码
2.1 js包
只需要这两个js文件
2.2 方法
添加标签
调用方法
function uploadFile123(file){
alert("请把文件夹放到D盘根目录下,打开另存为xls格式,否则会上传失败")
// var index = layer.msg('正在上传,请稍候',{icon: 16,time:false,shade:0.8});
$.ajaxFileUpload({
url : httpurl+'/payroll/upload' ,
secureuri : false, //一般设置为false
fileElementId : 'file', //文件上传空间的id属性
type : 'post',
dataType : 'text', //返回值类型 一般设置为
success : function(result) //服务器成功响应处理函数
{
alert(result)
},
error : function(result)//服务器响应失败处理函数
{
}
}
);
return false;
}
3. 运行结果
3.1文件截图
3.2 数据集合
- 方便插入数据库,我把表头提取首字母了。(代码有备注,如果业务逻辑需要,自己添加代码就行了)
[{sds=103.49, lsxbt=0, zfbt=1757, kylbx=507.355, zwgz=1250, gwjt=655, bksds=0, dwfdzynj=285.4, syshbt=585, dky=0, cgbt=0, bfgz=0, zfgjj=1761, kyanglbx=856.2, baseSALARY=563, REALWAGES=3550.925, kghf=77.595, dwfdsybxj=19.4, jtbt=250, NAME=arices, kfhj=3772.535, WAGESPAYABLE=5060, ybhj=7323.46, qtkk=0, dwfdghf=77.595, dwfdylbx=429.765, dwfdyanglbx=570.8, dwfdgjj=880.5, kzynj=428.1, ksybx=38.795, dke=0}, {sds=2, lsxbt=2, zfbt=2, kylbx=2, zwgz=2, gwjt=2, bksds=1, dwfdzynj=2, syshbt=2, dky=2, cgbt=2, bfgz=2, zfgjj=2, kyanglbx=2, baseSALARY=2, REALWAGES=2, kghf=2, dwfdsybxj=2, jtbt=2, NAME=21213, kfhj=2, WAGESPAYABLE=2, ybhj=2, qtkk=1, dwfdghf=2, dwfdylbx=2, dwfdyanglbx=2, dwfdgjj=2, kzynj=2, ksybx=1, dke=2}]
插入数据库代码就不写了,喜欢的请点个赞,如有问题私聊作者,作者会尽快恢复的!



