public JSONObject exportExcel(JSONObject jsonObject) {
JSONArray list = jsonObject.getJsonArray("list");
if (list == null) {
throw new BaseException(400, "缺少导出数据");
String path = getDesktopPath();
fillExportContent(path, list);
return Output.out(Message.OK, Message.EXPORT_EXCEL);
* 获取桌面路径
* @return
private static String getDesktopPath() {
FileSystemView view = FileSystemView.getFileSystemView();
File file = view.getHomeDirectory();
String path = file.getPath();
path.replace("\\", "/");
return file.getPath();
* 填充导出内容
* @param path 导出路径
* @param list 导出内容
private void fillExportContent(String path, JSONArray list) {
if (list == null && list.size() <= 0) {
return;
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet();
HSSFRow row = sheet.createRow(0);
row.createCell(0).setCellValue("订单号");
row.createCell(1).setCellValue("收货人");
row.createCell(2).setCellValue("收货人电话");
row.createCell(3).setCellValue("订单结算金额");
row.createCell(4).setCellValue("送货人");
row.createCell(5).setCellValue("送货人电话");
row.createCell(6).setCellValue("送货地址");
row.createCell(7).setCellValue("订单来源");
row.createCell(8).setCellValue("转单平台");
row.createCell(9).setCellValue("创建时间");
row.createCell(10).setCellValue("支付类型");
for (int i = 0; i < list.size(); i++) {
JSONObject listJSONObject = list.getJSONObject(i);
row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(listJSONObject.getString("orderCode"));
row.createCell(1).setCellValue(listJSONObject.getString("receivedLinkman"));
row.createCell(2).setCellValue(listJSONObject.getString("receivedTelephone"));
row.createCell(3).setCellValue(listJSONObject.getString("settledAmount"));
row.createCell(4).setCellValue(listJSONObject.getString("sendLinkman"));
row.createCell(5).setCellValue(listJSONObject.getString("sendTelephone"));
row.createCell(6).setCellValue(listJSONObject.getString("address"));
String platform = listJSONObject.getString("platform");
switch (platform) {
case "1":
platform = "移动端";
break;
case "2":
platform = "pc端";
break;
case "3":
platform = "微信小程序";
break;
case "4":
platform = "百度小程序";
break;
case "5":
platform = "第三方平台";
break;
row.createCell(7).setCellValue(platform);
String deferentPlatform = listJSONObject.getString("deferentPlatform");
switch (deferentPlatform) {
case "0":
deferentPlatform = "未转";
break;
case "1":
deferentPlatform = "花娃";
break;
case "2":
deferentPlatform = "花大侠";
break;
case "3":
deferentPlatform = "无需转单";
break;
case "4":
deferentPlatform = "转单宝";
break;
row.createCell(8).setCellValue(deferentPlatform);
row.createCell(9).setCellValue(listJSONObject.getString("createTime"));
row.createCell(10).setCellValue(listJSONObject.getString("payName"));
try {
FileOutputStream out = new FileOutputStream(path + "/" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()).toString() + ".xls");
workbook.write(out);
out.close();
} catch (Exception e) {
e.getMessage();
throw new BaseException(400, "导出错误");
文章目录前言一、思路二、使用步骤1.引入库2.读取上传的Excel数据并对比差异数据接口3.获取差异数据并导出Excel总结前言在本次项目中,有一个需求,导入本地Excel文件,对比数据库差异数据,再将差异数据导出Excel项目使用前后端分离,所有这里采用前后端分离思想一、思路读取本地Excel文件,获取其中的数据通过获取的参数查询数据库数据对比差异数据导出差异数据Excel表格二、使用步骤1.引入库<dependency> <groupId>o
springboot实现上传Excel文件与数据库中的数据进行比对
首先先写好文件上传的接口,然后上传需要比对数据的文件,在点击数据比对
下面是一部分数据比对的代码:
后端controller部分:
* 上传Excel文件与数据中的数据进行对比
* @param request
* @return
* @throws BiffException
* @throws IOExceptio...
DataGear是一款数据可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。
系统特点:
1、可管理数据库驱动
可通过驱动程序管理功能添加数据库驱动程序,无需重启,即可支持连接新数据库;
2、多种格式的数据集
支持SQL、CSV、Excel、HTTP接口、JSON等多种格式的数据集;
3、多数据集聚合图表
一个图表可添加多个不同格式的数据集,将它们聚合展示;
4、插件式图表类型
每一种类型的图表都以图表插件形式提供,并内置了大量图表插件,管理员也可上传自定义图表插件,丰富系统图表类型;
5、可自由编辑的HTML看板模板
看板使用原生的HTML网页作为模板,可自由编辑、绑定、异步加载图表,并支持将任意HTML网页导入为看板;
6、丰富的看板API
看板页面内置了大量的页面端API,可用于个性化扩展看板功能。
模块介绍:
1、datagear-analysis
数据分析底层模块,定义数据集、图表、看板API
2、datagear-connection
数据库连接支持模块,定义可从指定目录加载JDBC驱动、新建连接的API
3、datagear-dataexchange
数据导入/导出底层模块,定义导入/导出指定数据源数据的API
4、datagear-management
系统业务服务模块,定义数据源、数据分析等功能的服务层API
5、datagear-meta
数据源元信息底层模块,定义解析指定数据源表结构的API
6、datagear-persistence
数据源数据管理底层模块,定义读取、编辑、查询数据源表数据的API
7、datagear-util
系统常用工具集模块
8、datagear-web
系统业务web模块,定义web控制器、操作页面
9、datagear-webapp
系统Web应用程序组织模块,定义将系统构建为标准WAR程序包的结构
10、datagear-webappembd
系统独立应用程序组织模块,定义将系统构建为独立可执行程序的结构
Java 8+
Servlet 3.0+
(执行单元测试编译,需要预先配置单元测试环境)
mvn clean package
(不执行单元测试编译,无需预先配置单元测试环境)
mvn clean package -DskipTests
cd datagear-webappembd/target/datagear-[version]
(Linux环境)
./startup.sh
(windows环境)
startup.bat
1、将datagear以maven工程导入至IDE工具;
2、将datagear-webapp作为Web应用添加至servlet容器(比如Tomcat);
3、以调试模式运行Servlet容器。
调试注意:
在调试开发分支前(dev-*),建议先备份DataGear工作目录([用户主目录]/.datagear), 因为开发分支程序启动时会修改DataGear工作目录,可能会导致先前使用的正式版程序、以及后续发布的正式版程序无法正常启动。
调试时,系统仅会在第一次启动时升级内置数据库(Derby),如果遇到内置数据库访问异常,需要查看
datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql
文件,从中查找需要更新的SQL语句,手动更新至内置数据库。
系统自带了一个可用于为内置数据库执行SQL语句的简单工具类org.datagear.web.util.DerbySqlClient,可以在IDE中直接运行。注意:运行前需要先停止DataGear程序。
DataGear数据可视化分析平台 更新日志:
v2.4.0
整理chartSetting.js和chartSupport.js中的弃用内容
一个简单JAVA 小工程进行两个MYSQL数据库对象的比较,导入eclipse中,修改jdbc.properties文件中的JDBC信息,然后直接运行action类中的main方法,生成EXCEL,excel中包含表,表中列,索引,函数过程差异比对结果。
这个主要比对的是表,表中列的基本信息比较,比较是否存在是否类型一致等,对于函数存储过程则只是简单的比较是否存在,内容没有比对。如果谁感兴趣可以完善该比对功能。
JAVA代码,不复杂,看看就明白,都是采用简单代码。
开发的环境:
JDK1.7 eclipse
数据库设计工具BDB 最新版 v3.0
v3.0 下载:
1) 中文简体版: [url]http://www.bainsoft.com/downloads/BDB.rar[/url]
2) 英文版: [url]http://www.bainsoft.com/downloads/BDBEN.rar[/url]
v3.0版本更新:
1, 增加E-R图支持
2,增加数据库对象查询功能
3,添加方案右键菜单
4,SQL查询分析功能完善
5,修正了一些bug
v3.0浏览:
[url]http://www.bainsoft.com/products.html[/url]
贝恩网站:
[url]http://www.bainsoft.com[/url]
一些特性, SQL智能化查询分析:
[url]http://blog.csdn.net/12rain/archive/2008/03/12/2172068.aspx[/url]
关于BDB:
BDB是贝恩软件([url]WWW.bainsoft.COM[/url])发布的数据库设计和数据库部署软件,
支持Oracle,MS SQLServer,Access,MySQL,SQLAnyWhere和Sybase数据库。新版本加入SQL查询分析自动完成功能。
BDB的主要功能及特性:
1,数据库设计。
快速建立数据库模型。支持正向工程和反向工程;
支持数据库模型和实体数据库之间的比对更新和双向同步。
2,数据库部署。
自动创建数据库部署程序。
除常规调用外,在BDB中还提供了外部命令行调用数据库自动安装支持,
通过该功能可把数据库部署集成到软件安装程序中。
3,数据库自动升级。
通过BDB进行数据库自动升级部署。
可在不影响数据表数据的前提下进行数据库自动升级。
4,数据库迁移。
完整的数据库迁移方案。可进行跨数据库平台迁移。可迁移的数据对象包括:
数据表,索引,约束,缺省值,触发器,视图,存储过程,函数以及数据表数据。
5,查询分析
数据表数据快速查询,编辑及导出操作:
A,SQL智能化输入自动完成。
A,提供专用的SQL编辑器。支持语法高亮,脚本预定义。
B,支持脚本快速选择输入。
C,提供了不同数据库平台下统一的快速查询语法支持(如“DESC”)。
D,数据表数据和Excel文件之间的双向导入导出操作。
E,提供特定的数据文件格式,用于不同数据库之间的数据导入,导出。
6,SQL脚本预输出
数据库模型或实体数据库有所改动时,可预输出更新SQL脚本,同时还可以
进行数据库重建SQL脚本预览。
7,支持跨数据库平台。
只需按熟悉的数据库平台进行数据库设计,在部署到其他数据库平台时,
系统会进行数据类型转换及不同数据库平台下的语法差异处理。
8,方案模式。
支持多个数据库管理。
9,可重用属性定义及同步。
10,开发语言支持。
开放的数据库物理结构文件格式(XML标准格式),并提供了外部调用数据库结构源程序
(包含C#/Delphi/JAVA三个版本)。
11,支持多语言。
可根据需要增加新的语言包。
今天客户提出一个问题,能否在产品中2个子系统中的实现所有的excel导入功能过滤掉已有的数据。
我思考了一番,想到了3种大概的解决思路:
1、在插入每条数据的时候,查到对应的表找出是否存在对应的数据,如存在就跳过。
2、把整个excel文件的里的内容存入到一张临时表中,然后查询去重并插入到目的表中。select distinct into 或insert i...
最近碰到了文本对比的问题,也查找了很多方法,针对这个问题总结下经验,希望能够帮助到大家。
pom添加依赖 ,这里需要使用到diff-utils这里我使用的是diffutils 1.2.1.jar
<dependency>
<groupId>com.googlecode.
java-diff-utils</groupId>
用
Java实现两个
Excel表格中
数据的对比
最近疫情又开始严重了,身为班长的我理所当然的又担负起了这个打卡的职责。(超级麻烦,因为每个班总有几个顽固分子你不给他私信打电话他是不会主动打卡的。。。)
他们打完卡之后我需要去根据今天的
数据和昨天对比,看看是否有变化,因为大部分人即使位置变动了人也懒得标注- -!
于是在工作比较闲暇的今天我就想着琢磨一下能不能写个接口传上去能直接告诉我对比结果(其实这个用pyhon会简单很多,但是我不会),那么说干就干!
开发环境:springboot
jxl实现excel大数据导出,26000条记录,测试导出时间是19s,例子不算复杂,没有excel样式的处理,可以自己扩展哈,有数据库文件,部署即可看到效果!!!
有三个功能:代码构建数据的导出、数据库数据的导出(从配置文件读取表头)、从模板读取表头和列
最近遇到这样一个需求:需要读取
Excel内容(里面含有许多文章),查询指定关键字在各个文章中出现的次数,将结果返回到
excel中。我不知道怎么用
java操作
excel,于是上网四处寻找解决办法,结果要么是只能对
excel2003或
excel2007版的才有用,要么是copy过来的代码压根运行不了!
所以我在这里出一篇文章,为大家避避雷,不用特意去花积分下载资源,到头来反而运行不了,而且适合07版本以后的
excel。
2. 查询
数据库中的
数据,将
数据存储到
Java中的
数据结构中,如List或Map。
3. 创建
Excel工作簿和工作表,使用Apache POI库中的相关类。
4. 将
数据写入
Excel表格中,可以使用Apache POI库中的相关类。
5. 最后,保存
Excel文件。
需要注意的是,
导入数据到
Excel表格中时,需要根据
Excel表格的格式进行相应的处理,如设置单元格的格式、合并单元格等。