Excel是常用的办公工具,如果你是一个sql高手,可能希望能用SQL来操作Excel文件,因为有时候用SQL操作数据更简单,功能更强。目前在Java中用sql操作excel文件的方法一般是通过jdbc-odbc桥。这种方式功能弱,且不能跨平台。Sqlhub是一个分布式异构数据库,它内置了对excel支持。通过它可以用到hgsql的所有特性,且简单方便。
例如:目前我们有
excel文件:d:/tmp/员工.xls,内容如下:
编写如下
Java代码:注意运行下面的代码需要hg.jar和poi.jar两个java库文件。
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
public class Test {
public static void main(String[] args) {
try {
//注册本地驱动
Class.forName("com.hg.jdbc.HgLocDriver");
//获取本地连接
Connection conn = DriverManager.getConnection("jdbc:hg:loc:$ram", "hg", "hg");
Statement stmt = conn.createStatement();
String sql;
//创建表
sql = "create table excel.员工
file 'd:/tmp/员工.xls' (编号,姓名,职位,上级,出生日期,工资,奖金,部门)";
stmt.executeUpdate(sql);
//执行查询
sql = "select * from excel.员工
";
ResultSet rst = stmt.executeQuery(sql);
//输出查询结果字段
ResultSetMetaData rsmd = rst.getMetaData();
int n = rsmd.getColumnCount();
for (int i = 1; i <= n; i++) {
if (i > 1) {
System.out.print(",");
}
System.out.print(rsmd.getColumnName(i));
}
System.out.println("/n---------------------------");
//输出查询结果记录
while (rst.next()) {
for (int i = 1; i <= n; i++) {
if (i > 1) {
System.out.print(",");
}
System.out.print(rst.getString(i));
}
System.out.print("/n");
}
rst.close();
stmt.close();
conn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
运行结果
编号
,姓名,职位,上级,出生日期,工资,奖金,部门
---------------------------
0001,王东
,职员,0013,1980-02-05,800.0,0,20
0002,李海卫
,销售,0006,1979-08-15,1600.0,300,30
0003,张空
,销售,0006,1982-08-07,1250.0,500,30
0005,刘龙维
,销售,0006,1982-10-13,1250.0,1400,30
0008,王芳
,主管,0004,1981-10-18,3000.0,0,20
0011,宋建
,职员,0008,1980-01-23,1100.0,0,20
0007,关心
,经理,0009,1978-07-27,2450.0,0,10
0006,张云
,经理,0009,1977-02-14,2850.0,0,30
0010,张凯
,销售,0006,1979-07-29,1500.0,200,30
0015,刘固
,顾问,0009,1980-01-22,3000.0,0,10
0004,孔兵
,经理,0009,1982-03-01,2975.0,0,20
0013,刘海星
,主管,0004,1978-01-30,3000.0,0,20
0009,刘程飞
,总经理,,1982-01-17,5000.0,0,10
0012,李保
,职员,0006,1982-04-11,950.0,0,30
如果你不想编写
java程序,可以使用SQLHUB管理器,可视化的管理:
本文介绍了一种使用Java和SQL操作Excel文件的方法,通过Sqlhub可以在Java中利用SQL的强大功能进行Excel数据的操作,包括创建表、执行查询等。
244

被折叠的 条评论
为什么被折叠?



