Excel——读取文件后——组装成待插入数据库数据——实体映射模式
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——读取文件后——组装成待插入数据库数据——实体映射模式的更多相关文章
- C# 读取文件中的sql语句 创建数据库以及表结构
大概思路是: 读取文件 根据文件中行内容为GO 作为分割 一条条放到list中 然后在程序中逐条执行sql语句; 值得一提的是 创建数据库的语句是不允许放到程序事务中执行的 所以目前我是分了两个文本 ...
- Shapefile文件中的坐标绘制到屏幕时的映射模式设置
pDC->SetMapMode(MM_ANISOTROPIC ); //首先选择MM_ANISOTROPIC映射模式,其它映射模式都不合适 pDC->SetWindowExt( max(a ...
- Node.js中读取文件后用Json.parse方法报错
今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...
- Node.js中读取文件后用Json.parse方法报错解决方案
今天,在调试一个node项目时,发现了一个很大的坑,在此分享给大家! 大家都知道,Json.parse()方法对格式要求是很严格的,格式不对极其容易报错,但是有时候格式看似是正确的也会报错. 比如这一 ...
- .net 生成html文件后压缩成zip文件并下载
这里只做一个简单的实例 public ActionResult Index() { string path = Server.MapPath("/test/");//文件输出目录 ...
- Python读取文件内容并将内容插入到SSDB中
import os import linecache import time from SSDB import SSDB ssdb = SSDB('127.0.0.1', 8888) print(&q ...
- [Java] Java解析XML格式Response后组装成Map
//Get and Parse Response def response = context.expand(‘${TestStepName#Response}’) def xmlParser = n ...
- python读取文件后切片
from itertools import islice with open(“1.txt") as f: for a in islice(f,0,2): print(a)
- (转)php读取文件使用redis的pipeline导入大批量数据
第一次写博客,哈哈,纯属用来记录一下自己工作中遇到的问题及解决办法. 昨天因为工作的需求,需要做一个后台上传TXT文件,读取其中的内容,然后导入redis库中.要求速度快,并且支持至少10W以上的数据 ...
随机推荐
- webstorm创建js文件时自动生成js注释
设置webstorm创建js文件时自动生成js注释 settings--Editor--File and Code Temlates 黑色框框里的内容自己填写上去,以下是参考的代码块: /** * @ ...
- kali无法安装nvidia显卡驱动
按照各位大神的博客安装nvidia显卡驱动一直失败,重启之后无法正常进入系统,恢复模式可以进入,一直以为自己是不是哪里步骤不对,后面来回重装了几次系统. 最后意识到虚拟机里用的是虚拟网卡,并非宿主机的 ...
- Arcmap图层浏览遇到ORA-07445 [QCDLAUCN] 错误
Oracle 12.1.0.2版本,在图层浏览时遇到了ORA-07445 [QCDLAUCN] 错误.根据MOS的查询结果,得知这是一个bug (Doc ID 1932725.1): 文章中同时给出了 ...
- iOS 测试 WebDriverAgent 简介
WebDriverAgent 是什么 去年的 SeleniumConf 上,Facebook 推出了一款新的iOS移动测试框架 —— WebDriverAgent,当时的推文上,写的还只支持模拟器 ...
- python迭代有限制,突破限制
python默认迭代次数为996 需要修改才能迭代超过996 import sys sys.setrecursionlimit() #自定义扩展极限,可以自己改 def fun(n): print(n ...
- 了解编程语言 ----- c# 简介
1.编程语言 编程语言: 为了实现人与机器的交互,计算机主要识别的就是 0 和 1 语言的发展过程主要分为: 1.面向机器的语言:二进制,汇编 2.面向过程的语言:汇编语言,C语言,B语言, 3.基于 ...
- 「雅礼集训 2018 Day5」Convex 凸包、莫队
LOJ 看到离线区间操作仍然考虑莫队,然后可以发现:我们对于原来的凸包集合按照极角序维护一个链表,那么删除一个位置可以\(O(1)\),撤回删除操作也可以\(O(1)\)(因为原来的链表结构中当前节点 ...
- 封装:WPF中可以绑定的BindPassWord控件
原文:封装:WPF中可以绑定的BindPassWord控件 一.目的:本身自带的PassWord不支持绑定 二.Xaml部分 <UserControl x:Class="HeBianG ...
- Kafka Streams的Data Types and Serialization
Avro <repositories> <repository> <id>confluent</id> <url>http://packag ...
- 通过Ldap实现人事系统组织人事和AD的同步
项目需求:同步人事系统的组织架构-对应AD的OU树同步人事系统的员工-对应AD的用户 创建OU 名字不能重复,需要父级路径(parentOrganizeUnit)以及新ou的名字(name),如果最父 ...