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 的接口相关推荐

  1. 快速用golang开发一个上传excel入库到sqlserver的应用

    这个小的功能本来想用php开发的,但用php开发的话,需要安装php的mssql sqlserver的扩展,并且还要安装nginx +php-pfm +php的服务,很麻烦,但如果用golang开发的 ...

  2. excel 树结构json_码农必备:Excel另存为JSON的技巧

    原标题:码农必备:Excel另存为JSON的技巧 原创声明:本文为原创,未经许可,禁止转载! 不过欢迎大家转发到微博.微信.朋友圈~么么哒~ JSON是码农们常用的数据格式,轻且方便,而直接手敲JSO ...

  3. php上传查询excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    PHP上传Excel文件导入数据到MySQL数据库示例2020-06-20 00:34:11 最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里 ...

  4. php 上传excel到mysql_PHP上传Excel文件导入数据到MySQL数据库示例

    最近在做Excel文件导入数据到数据库.网站如果想支持批量插入数据,可以制作一个上传Excel文件,导入里面的数据内容到MySQL数据库的小程序. 要用到的工具: ThinkPHP:轻量级国产PHP开 ...

  5. 上传excel文件,导出excel模板实现

    此功能上商品导入,分别有导入组别,品类,属性(json字符串截取)等多功能多表实现. 导出功能,根据自定义需要的模板名称生成可配置模板 controller调用前段路径,然后导入/导出模板工具,ser ...

  6. 张小白的渗透之路(五)——上传漏洞及解析漏洞详解

    前言 web应用程序通常会有文件上传的功能,例如在BBS发布图片.在个人网站发布压缩包,只要web应用程序允许上传文件,就有可能存在文件上传漏洞. 上传漏洞与sql注射相比,风险更大,如果web应用程 ...

  7. java代码上传exel,excle上传服务器并解析!求excel上传到服务器的java代码

    如何将数据上传给服务器 医嘱以形式发送过来? 办法有很多,最简单的,就是在机器里,建立2个数据库A,B,假如A是外务器. 在数据库中,以A数据库做发布,让B数据库订阅,弄好以后,A数据库的数据就会自动 ...

  8. ASP.NET 实现上传EXCEL,利用NOPI操作,转换得到DataTable

    这几天正好用到上传Excel,并根据Excel中的数据做相应的处理,故整理以备用. 如果需要将Excel中的数据对应写到数据库表中请参见后学用SqlBulkCopy一次性将多条数据赋值到表中:http ...

  9. 使用ocupload和POI一键上传Excel并解析导入数据库

    使用的工具如下:  JQuery ocupload jquery.ocupload-1.1.2.js Apache POI poi-3.9.jar 如果是Maven项目添加依赖如下: <depe ...

最新文章

  1. Eclipse 代码风格配置
  2. Git历险记(四)——索引与提交的幕后故事
  3. PHP部分字符串函数汇总
  4. 在一台win10上启动多个mysql
  5. Flutter 弧度与角度之间的换算
  6. 学校计算机房 作文,第一次去机房作文
  7. 域名变一定要购买云服务器才能有备案申请号吗?
  8. MySQL之数据库基本操作语句
  9. 怎样在mac系统里将文件拷贝到移动硬盘教程
  10. 基于收益率的基金绩效归因
  11. hover和active的区别
  12. 19【推荐系统16】CTRCVR联合学习
  13. 关于oss视频、语音不能播放问题
  14. Class34--猜字游戏
  15. matlab 神经网络train均方误差,MATLAB搭建bp神经网络的误差特别大,但R2的值也大,求解帮我看看我的网络哪里出问题了...
  16. 怎么将bmp格式图片转换jpg格式的
  17. vbscript 学习笔记
  18. 解决:登入失败,禁止当前的账户
  19. TKO 1-2基本快速幂的基本操作(熟背)
  20. 渣画质视频秒变清晰,“达芬奇”工具集帮你自动搞定

热门文章

  1. 据说这是全世界最最最权威、最准的爱情测试
  2. python深度爬虫_总结:常用的 Python 爬虫技巧
  3. php access control allow origin,js请求跨域问题--Access-Control-Allow-Origin
  4. 【控制】多智能体系统总结。5.系统合并。
  5. 1.6 课程资源-深度学习-Stanford吴恩达教授
  6. 【PC工具】更新github下载加速器,github项目辅助下载工具,github高速下载
  7. BRCM eCos下的编译及问题
  8. android录制视频横向,Android从零开始(26)(设置全屏+横屏、相机拍照、视频录制)(新)...
  9. 函数防抖Debounce和函数节流Throttle
  10. proxool数据库连接池用法