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以上的数据 ...
随机推荐
- TYPORA语法
原文链接:https://blog.csdn.net/SIMBA1949/article/details/79001226
- Java学习:字符串概述与特点
字符串概述与特点 java.lang.String类 代表字符串 API当中说:Java程序中的所有字符串字面值(如“abc“)都作为此类的实例实现.其实就是说:程序当中所用的双引号字符串,都是Str ...
- 关于win server中 task Scheduler使用
日常开发过程中最会遇到很多定时任务,利用计算机自带的软件工具,既方便,又快捷,能节省大量的开发时间,而且功能全面,容错率高. 下面举个例子:定时发送邮件,每天8:10准时触发邮件发送脚本 1.首先配置 ...
- EF之DataBase添加新字段
数据库中表添加新字段后,在EF的xml格式的中找到与表名相同的节点添加新字段 (SSDL.CSDL和C-S都要添加相关信息)
- C#读写设置修改调整UVC摄像头画面-增益
有时,我们需要在C#代码中对摄像头的增益进行读和写,并立即生效.如何实现呢? 建立基于SharpCamera的项目 首先,请根据之前的一篇博文 点击这里 中的说明,建立基于SharpCamera的摄像 ...
- C# vb .NET读取识别条形码线性条码EAN-13
EAN-13是比较常见的条形码编码规则类型的一种.如何在C#,vb等.NET平台语言里实现快速准确读取该类型条形码呢?答案是使用SharpBarcode! SharpBarcode是C#快速高效.准确 ...
- person类与其子类在使用中的内存情况(含java的改写和c#的屏蔽)
JAVA 普通person类及调用代码: public class Person { public String xm; public int nl; public void setme(String ...
- Java的Stream流式操作
前言 最近在实习,在公司看到前辈的一些代码,发现有很多值得我学习的地方,其中有一部分就是对集合使用Stream流式操作,觉得很优美且方便.所以学习一下Stream流,在这里记录一下. Stream是什 ...
- Xcode11 Developer Tool中没了Application Loader
升级Xcode11之后不少人发现在Open Developer Tool中没了Application Loader. 那么如果我们还想用该怎么办呢? 先这样 找个老版的Xcode–>Conten ...
- Resource注解无法导入依赖使用javax.annotation的注解类
Resource注解无法导入依赖使用javax.annotation的注解类 使用javax.annotation的注解类 javax.annotation.Resource 注解在eclipse中无 ...