excel 树结构json_写一个上传excel表格,解析成 json 的接口
IDE:IDEA
编程语言:JAVA
controller 类
业务处理类
model 类
Controller
import com.你的路径.ImportTaskExcel;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@CrossOrigin
@Service
public class ProjectTaskExcelController {
//从表格导入任务;
//先将excel解析为json,然后将json数据进行处理,保存到数据库
@RequestMapping(value = "/import_excel_task",headers = "content-type=multipart/*", method = RequestMethod.POST)
@ResponseBody
public Map importExcel(HttpServletRequest request, HttpServletResponse response, @RequestParam MultipartFile file) throws IOException {
String originalFilename = file.getOriginalFilename();
String type = file.getContentType();
System.out.println("目标文件名称:" + originalFilename + ",目标文件类型:" + type);
InputStream is = file.getInputStream();
ImportTaskExcel importExcel = new ImportTaskExcel();
List list= importExcel.importDataFromExcel( is, originalFilename);
for(int i = 0;i
System.out.println(list.get(i).toString());
}
Map map = new HashMap<>();
map.put("list", list);
map.put("code", 0);
return map;
}
}
业务处理类
```
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 org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.util.ArrayList;
import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class ImportTaskExcel {
private static final Logger logger = LoggerFactory.getLogger("ImportTaskExcel");
/**
* @Title: createWorkbook
* @Description: 判断excel文件后缀名,生成不同的workbook * @param @param is
* @param @param excelFileName
* @param @return
* @param @throws IOException
* @return Workbook
* @throws
*/
public Workbook createWorkbook(InputStream is, String excelFileName) throws IOException {
if (excelFileName.endsWith(".xls")) {
return new HSSFWorkbook(is);
}else if (excelFileName.endsWith(".xlsx")) {
return new XSSFWorkbook(is);
}
return null;
}
/**
* @Title: getSheet
* @Description: 根据sheet索引号获取对应的sheet
* @param @param workbook
* @param @param sheetIndex
* @param @return
* @return Sheet
* @throws
*/
public Sheet getSheet(Workbook workbook, int sheetIndex){
return workbook.getSheetAt(0);
}
public List importDataFromExcel(InputStream is, String excelFileName){
List list = new ArrayList();
try {
//创建工作簿
Workbook workbook = this.createWorkbook(is, excelFileName);
//创建工作表sheet
Sheet sheet = this.getSheet(workbook, 0);
//获取sheet中数据的行数
int rows = sheet.getPhysicalNumberOfRows();
//获取表头单元格个数
int cells = sheet.getRow(0).getPhysicalNumberOfCells();
if(cells > 8) {
cells = 8;
}
for (int i = 1; i < rows; i++) {//第一行为标题栏,从第二行开始取数据
//利用反射,给JavaBean的属性进行赋值
ExcelTaskRow vo = new ExcelTaskRow();
Field[] fields = vo.getClass().getDeclaredFields();
Row row = sheet.getRow(i);
int index = 0;
while (index < cells) {
Cell cell = row.getCell(index);
excel 树结构json_写一个上传excel表格,解析成 json 的接口相关推荐
- 快速用golang开发一个上传excel入库到sqlserver的应用
这个小的功能本来想用php开发的,但用php开发的话,需要安装php的mssql sqlserver的扩展,并且还要安装nginx +php-pfm +php的服务,很麻烦,但如果用golang开发的 ...
- excel 树结构json_码农必备:Excel另存为JSON的技巧
原标题:码农必备:Excel另存为JSON的技巧 原创声明:本文为原创,未经许可,禁止转载! 不过欢迎大家转发到微博.微信.朋友圈~么么哒~ JSON是码农们常用的数据格式,轻且方便,而直接手敲JSO ...
- php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...
- php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例
最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...
- 上传excel文件,导出excel模板实现
此功能上商品导入,分别有导入组别,品类,属性(json字符串截取)等多功能多表实现. 导出功能,根据自定义需要的模板名称生成可配置模板 controller调用前段路径,然后导入/导出模板工具,ser ...
- 张小白的渗透之路(五)——上传漏洞及解析漏洞详解
前言 web应用程序通常会有文件上传的功能,例如在BBS发布图片.在个人网站发布压缩包,只要web应用程序允许上传文件,就有可能存在文件上传漏洞. 上传漏洞与sql注射相比,风险更大,如果web应用程 ...
- java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码
如何将数据上传给服务器 医嘱以形式发送过来? 办法有很多,最简单的,就是在机器里,建立2个数据库A,B,假如A是外务器. 在数据库中,以A数据库做发布,让B数据库订阅,弄好以后,A数据库的数据就会自动 ...
- ASP.NET 实现上传EXCEL,利用NOPI操作,转换得到DataTable
这几天正好用到上传Excel,并根据Excel中的数据做相应的处理,故整理以备用. 如果需要将Excel中的数据对应写到数据库表中请参见后学用SqlBulkCopy一次性将多条数据赋值到表中:http ...
- 使用ocupload和POI一键上传Excel并解析导入数据库
使用的工具如下: JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...
最新文章
- Eclipse 代码风格配置
- Git历险记(四)——索引与提交的幕后故事
- PHP部分字符串函数汇总
- 在一台win10上启动多个mysql
- Flutter 弧度与角度之间的换算
- 学校计算机房 作文,第一次去机房作文
- 域名变一定要购买云服务器才能有备案申请号吗?
- MySQL之数据库基本操作语句
- 怎样在mac系统里将文件拷贝到移动硬盘教程
- 基于收益率的基金绩效归因
- hover和active的区别
- 19【推荐系统16】CTRCVR联合学习
- 关于oss视频、语音不能播放问题
- Class34--猜字游戏
- matlab 神经网络train均方误差,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
- 怎么将bmp格式图片转换jpg格式的
- vbscript 学习笔记
- 解决:登入失败,禁止当前的账户
- TKO 1-2基本快速幂的基本操作(熟背)
- 渣画质视频秒变清晰,“达芬奇”工具集帮你自动搞定
热门文章
- 据说这是全世界最最最权威、最准的爱情测试
- python深度爬虫_总结:常用的 Python 爬虫技巧
- php access control allow origin,js请求跨域问题--Access-Control-Allow-Origin
- 【控制】多智能体系统总结。5.系统合并。
- 1.6 课程资源-深度学习-Stanford吴恩达教授
- 【PC工具】更新github下载加速器,github项目辅助下载工具,github高速下载
- BRCM eCos下的编译及问题
- android录制视频横向,Android从零开始(26)(设置全屏+横屏、相机拍照、视频录制)(新)...
- 函数防抖Debounce和函数节流Throttle
- proxool数据库连接池用法