idea自定义数据导出格式

最近需要从数据库导出特定格式的数据,写代码导太麻烦了,试了几个mysql客户端都只能导固定格式的,最后发现idea的Database工具可以自定义导出的格式,所以就试了下。

导出功能在这个位置

当然这些是idea默认的,想自定义点击Go to Scripts Directory

可以直接修改原来的脚本,也可以新建,新建的也会在刚才的右键菜单里显示,很方便。  
 从原来的脚本可以看出,idea支持三种脚本语言:js、groovy和clojure,可以用自己熟悉的语言写,这里我选的是js。  
 最终导出的文件后缀名是由脚本的文件名决定的,如xxx.xml.js,导出的文件是xml格式的。

数据库的信息可以直接从上下文中取,分别有:  
 COLUMNS     List<DataColumn> // 每一列的信息  
 DataColumn  { columnNumber(), name() } // 列信息对象有两个方法,取列序号和列名

ROWS        Iterable<DataRow> //第一行的信息  
 DataRow     { rowNumber(); first(); last(); data(): List<Object>; value(column): Object } //行对象

OUT         { append() } // 这个是用来输出到文件  
 FORMATTER   { format(row, col); formatValue(Object, col) } //取某行某列的值

TABLE  // 整个表的信息,最常用的是TABLE.getName(),获取表名

function eachWithIdx(iterable, f) { var i = iterable.iterator(); var idx = 0; while (i.hasNext()) f(i.next(), idx++); }
// 特殊字符转义
function escape(str) {
    str = str.replaceAll("\t|\b|\\f|\\r|\\n|\\r\\n", "");
    str = com.intellij.openapi.util.text.StringUtil.escapeXml(str);
    str = str.replaceAll("\"", """);
    if (str == null || str == ‘NULL‘ || str == ‘null‘) {
        str = ‘‘;
    }
    return str;
}

// 换行
var NEWLINE = "\n";

function output() { for (var i = 0; i < arguments.length; i++) { OUT.append(arguments[i]); } }

output("<?xml version=\"1.0\" encoding=\"UTF-8\"?>", NEWLINE);
output("<dataset>", NEWLINE);

eachWithIdx(ROWS, function (row) {
    output("    <", TABLE.getName());
    eachWithIdx(COLUMNS, function (col) {
        output(" " + col.name(), "=\"", escape(FORMATTER.format(row, col)), "\"");
    });
    output(" />", NEWLINE);
});

output("</dataset>")

生成的文件格式

<?xml version="1.0" encoding="UTF-8"?>
<dataset>
    <sys_user id="1" username="123" password="123" mobile="123" />
    <sys_user id="2" username="321" password="123" mobile="222555" />
    <sys_user id="3" username="111" password="321" mobile="12313" />
</dataset>

原文地址:https://www.cnblogs.com/amwyyyy/p/8603752.html

时间: 2024-08-14 17:50:49

idea自定义数据导出格式的相关文章

Dev GridControl数据导出格式问题

环境:DevExpress9.3,Vs2008 DevExpress的GridControl提供方便的数据导出到Excel功能,导出中用户可以根据GridControl的格式进行导出(ExportToXls(Stream stream)方法). 1.如果表中存在一列为字符类型,但是存放的为数字,那么按照GridControl的格式导出到Excel中便会产生"将存储为文本的数字转换为数字"的问题提示,必须在Excel中把这些值转化为数字,才可进行计算等. 对于这种方式的处理方法很简单,只

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

.net解决数据导出excel时的格式问题

在项目中一般都需要将报表数据导出到EXCEL中,但经常出现导出长串数据(如身份证)到EXCEL中后显示为科学计数法的格式,或者报表中显示为001的数据导出到Excel后成了1的格式. 下面简单介绍一下以上问题的解决方法: 1.首先,了解一下excel从web页面上导出的原理.当我们把这些数据发送到客户端时,我们想让客户端程序(浏览器)以excel的格式读 取它,所以把mime类型设为:application/vnd.ms-excel,当excel读取文件时会以每个cell的格式呈现数据,如果 c

tablib把数据导出为Excel、JSON、CSV等格式的Py库(写入数据并导出exl)

#tablib把数据导出为Excel.JSON.CSV等格式的Py库 #python 3 import tablib #定义列标题 headers = ('1列', '2列', '3列', '4列', '5列') #需写入的数据,按照一行一行的输入 #元组数据的个数必须和列数一致 data = [('23','23','34','23','34'),('sadf','23','sdf','23','fsad')] #写入数据 mylist = tablib.Dataset(*data, head

使用NPOI将数据导出为word格式里的table

开发环境:VS2013+MySQL5.5+EF6+NPOI2.0.6 格式:WinForm+CodeFirst PS:vs2013的CodeFirst很方便了啊 CodeFirst方式就不再赘述了. 此Demo托管地址:http://git.oschina.net/uustudy/ExportImportWord.git 另外推荐下NPOI代码托管地址:https://github.com/tonyqus/npoi 作者博客:http://tonyqus.sinaapp.com/ 使用nuget

PB导出数据excel格式dw2xls

PB导出数据excel格式dw2xls 使用DW2XLS控件 语法 uf_save_dw_as_excel ( dw, filename ) 參数 dw A reference to the datawindow object filename A string whose value is the name of the file you want to create. If filename is not on the operating system's search path, you

利用PHPExcel将数据导出到xls格式的excel文件

在开发某地的经营许可证管理系统的时候需要将数据导出打excel文件,虽然一年前做某集团的ERP的时候用到过一次导入和导出,但是那时候太忙没时间写博客,一年过去了我也忘的差不多了,所以趁着今天将此次的使用写到博客中,作为以后开发的一个参考,免得再次使用的时候需要导出找资料,也给其他同行一个参考.作者:DragonDean,博客地址:http://www.cnblogs.com/dragondean/ 什么是PHPExcel? PHPExcel 是用来操作Office Excel 文档的一个PHP类

将页面中表格数据导出excel格式的文件(vue)

近期由于项目需要,需要将页面中的表格数据导出excel格式的文件,折腾了许久,在网上各种百度,虽然资料不少,但是大都不全,踩了许多坑,总算是皇天不负有心人,最后圆满解决了. 1.安装相关依赖(npm安装可能会出现某些错误,可以使用cnpm): npm install file-saver --save // 保存文件用 npm install xlsx --save // 转二进制用 npm install script-loader --save-dev // xlsx核心文件 2.下载两个核

Spire.Office for .NET 提供制图,制表,电子邮件,条形码以及数据导出的功能

Spire.Office for .NET是e-iceblue公司推出的一款.NET控件包.它包含所有该公司发布的.NET的控件.通过Spire.Office for .NET,开发人员可以轻松的操作商业中最流行格式的文件,主要包括Word, Excel, PDF,XML和HTML.除了强大的文件操作组件,Spire.Office for .NET 还提供制图,制表,电子邮件,条形码以及数据导出的功能. Spire.Office for .NET 包含以下产品: Spire.Doc for .N