问题来源:http://bbs.csdn.net/topics/390842850 。
问题描述:把几千个txt文本里面的数据存取到Excel文件中去。txt文本中的数据都是很规范的,如下示例:
文件夹 test
文件下文件名 a.txt,b.txt,c.txt等等
a.txt的内容是这样的 :
数据A 数据B 数据C
需要将指定目录下的所有文本文件内容合并输出到一个Excel文件中,其中所有文本文件均由一行三列(以制表符分隔)的数据组成。
JAVA在实现时需要循环读入该目录下所有文本,并将文本内容写到Excel文件中。但Java用于处理Excel的开源包(Apache的poi等)提供的支持过于底层,代码编写非常繁琐。
集算器对poi进行了封装,实现起来非常简单:
| A |
1 | =directory@p(“E:\\test”) |
2 | =A1.conj(file(~).import()) |
3 | >file(“E:\\test\\result.xlsx”).exportxls(A2) |
A1:列出E:\\test目录下所有文件名,@p选项代表返回的文件名仍带有完整路径名
A2:读取目录下所有文件后合并内容
A3:将合并后的内容导出到xlsx格式Excel文件中(xlsx格式可以容纳100万行)。
这段代码可以使用集算器提供的JDBC接口被java程序调用,在Java程序中使用esProc JDBC调用这段程序获得结果的代码如下:(将上述脚本保存为test.dfx):
//建立esProc jdbc连接
Class.forName(“com.esproc.jdbc.InternalDriver”);
con= DriverManager.getConnection(“jdbc:esproc:local://”);
//调用esProc程序(类似存储过程),其中test是dfx的文件名
com.esproc.jdbc.InternalCStatement st =(com.esproc.jdbc.InternalCStatement)con.prepareCall(“call test()”);
//执行esProc程序
st.executeQuery();