package com.it.excel.excelLearn;

import java.io.IOException;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set; public class App {
public static void main(String[] args) throws IOException {
String filePath = "C:\\Users\\gzh\\Desktop\\test.xlsx";
List<ExcelSheetStructure> excelSheets = ExcelUtil.readExcel(filePath);
// 获取所需sheet页
ExcelSheetStructure sheetStructure = null;
for (ExcelSheetStructure sheet : excelSheets) {
if (sheet.getSheetName().equals("产品数据")) {
sheetStructure = sheet;
break;
}
}
if (null == sheetStructure) {
System.out.println("导入的Excel中没有【产品数据】sheet页");
return;
}
// 把非表头数据转化为可插入数据
Map<String, String> replaceHeaderMap = new HashMap<>();
replaceHeaderMap.put("产品编号", "productNo");
replaceHeaderMap.put("产品名称", "productName"); List<Map<String, Object>> notHeaderData = sheetStructure.getSheetTableList();
// 输出为替换前的数据
System.out.println(notHeaderData);
// 待插入数据定义
List<Map<String, Object>> insertData = new LinkedList<>();
for (Map<String, Object> notHeaderRowMap : notHeaderData) {
Map<String,Object> insertMap = new HashMap<>();
Set<Entry<String, Object>> entrySet = notHeaderRowMap.entrySet();
for (Entry<String, Object> entry : entrySet) {
Set<String> replaceHeaderMapKeySet = replaceHeaderMap.keySet();
for (String key : replaceHeaderMapKeySet) {
if(entry.getKey().equals(key)){
insertMap.put(replaceHeaderMap.get(key), entry.getValue());
break;
}
}
}
insertData.add(insertMap);
}
// 输出新待插入数据库中的数据
System.out.println(insertData);
// for循环,一条一条记录插入数据库
}
}

Excel——读取文件后——组装成待插入数据库数据——实体映射模式的更多相关文章

  1. C# 读取文件中的sql语句 创建数据库以及表结构

    大概思路是: 读取文件 根据文件中行内容为GO 作为分割  一条条放到list中 然后在程序中逐条执行sql语句; 值得一提的是 创建数据库的语句是不允许放到程序事务中执行的 所以目前我是分了两个文本 ...

  2. Shapefile文件中的坐标绘制到屏幕时的映射模式设置

    pDC->SetMapMode(MM_ANISOTROPIC ); //首先选择MM_ANISOTROPIC映射模式,其它映射模式都不合适 pDC->SetWindowExt( max(a ...

  3. Node.js中读取文件后用Json.parse方法报错

    今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...

  4. Node.js中读取文件后用Json.parse方法报错解决方案

    今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...

  5. .net 生成html文件后压缩成zip文件并下载

    这里只做一个简单的实例 public ActionResult Index() { string path = Server.MapPath("/test/");//文件输出目录 ...

  6. Python读取文件内容并将内容插入到SSDB中

    import os import linecache import time from SSDB import SSDB ssdb = SSDB('127.0.0.1', 8888) print(&q ...

  7. [Java] Java解析XML格式Response后组装成Map

    //Get and Parse Response def response = context.expand(‘${TestStepName#Response}’) def xmlParser = n ...

  8. python读取文件后切片

    from itertools import islice with open(“1.txt") as f: for a in islice(f,0,2): print(a)

  9. (转)php读取文件使用redis的pipeline导入大批量数据

    第一次写博客,哈哈,纯属用来记录一下自己工作中遇到的问题及解决办法. 昨天因为工作的需求,需要做一个后台上传TXT文件,读取其中的内容,然后导入redis库中.要求速度快,并且支持至少10W以上的数据 ...

随机推荐

  1. Linux内核文档翻译——sysfs.txt

    sysfs - _The_ filesystem for exporting kernel objects. sysfs – 用于导出内核对象(kobject)的文件系统 Patrick Mochel ...

  2. 如何申请腾讯地图用户Key

    打开网页https://lbs.qq.com/,进入腾讯位置服务. 单击[登录],登录腾讯账号(本文以QQ登录为例),如果首次登陆腾讯位置服务,则提示注册开发者账号. 选择箭头处[注册新账号].填写手 ...

  3. Codeforces Round #557 (Div. 1) 简要题解

    Codeforces Round #557 (Div. 1) 简要题解 codeforces A. Hide and Seek 枚举起始位置\(a\),如果\(a\)未在序列中出现,则对答案有\(2\ ...

  4. Java学习:集合双列Map

    数据结构 数据结构: 数据结构_栈:先进后出 入口和出口在同一侧 数据结构_队列:先进先出 入口和出口在集合的两侧 数据结构_数组: 查询快:数组的地址是连续的,我们通过数组的首地址可以找到数组,通过 ...

  5. 系统压测结果对比:tomcat/thinkphp/swoole/php-fpm/apache

    [测试所用服务器8核,16G内存]压测接口:很简单,从一张表里根据主键随机查询出一条数据[数据库服务器和WEB服务器分开的].表数据量大概:910000+条. 这个测试结果很有趣:tp5.0和3.2性 ...

  6. 创建一个dotnetcore的SPA模板项目

    MPA和SPA 对比 dotnet new --install Microsoft.AspNetCore.SpaTemplates::* 我这边用的是vue dotnet new vue dotnet ...

  7. javascript 对象之hasOwnProperty()方法

    hasOwnProperty()方法是判断某一个对象是否有你给出的属性名称,需要注意的是该方法无法检测该对象原型连中是否具有该属性 具体格式下: var person = {"name&qu ...

  8. vue.js 如何加载本地json文件

    在项目开发的过程中,因为无法和后台的数据做交互,所以我们可以自建一个假数据文件(如data.json)到项目文件夹中,这样我们就可以模仿后台的数据进行开发.但是,如何在一个vue.js 项目中引入本地 ...

  9. 老大难的GC原理及调优,这下全说清楚了

    概述 本文介绍GC基础原理和理论,GC调优方法思路和方法,基于Hotspot jdk1.8,学习之后将了解如何对生产系统出现的GC问题进行排查解决 阅读时长约30分钟,内容主要如下: GC基础原理,涉 ...

  10. echarts曲线 将不连续的点连接起来、由null间断的点连接起来

    series:[ { name: '测试',  type: 'line',  data: [1,null,2,null,null,3,null,null,null,4],  connectNulls: ...