Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JavaJDBC连接平面文件_Java_Excel_Csv_Jdbc_Flat File - Fatal编程技术网

使用JavaJDBC连接平面文件

使用JavaJDBC连接平面文件,java,excel,csv,jdbc,flat-file,Java,Excel,Csv,Jdbc,Flat File,我在使用jdbc连接连接应用程序中存在的平面文件(.txt、.xml、.csv、.xls等)时遇到问题 在搜索之后,我发现了以下一些建议 1) (二) 我尝试了第一个(xlsql),下面是过程。 首先创建核心java项目并加载来自xlsql的jar文件。 下面是代码 Class.forName("com.nilostep.xlsql.jdbc.xlDriver"); final String dir = System.getProperty("user.dir")+"\\db\\xl"; co

我在使用jdbc连接连接应用程序中存在的平面文件(.txt、.xml、.csv、.xls等)时遇到问题

在搜索之后,我发现了以下一些建议

1)
(二)

我尝试了第一个(xlsql),下面是过程。 首先创建核心java项目并加载来自xlsql的jar文件。 下面是代码

Class.forName("com.nilostep.xlsql.jdbc.xlDriver");
final String dir = System.getProperty("user.dir")+"\\db\\xl";
conn = DriverManager.getConnection("jdbc:nilostep:excel:/"+dir);
Statement stmt = con.createStatement();
String sql = "select * from  Sheet1$";
ResultSet rs = stmt.executeQuery(sql);
if(rs.next()){
System.out.println(rs.getString(1));
}else{
System.out.println("nodata....");
}
它表示Sheet1$表不存在


请帮帮我。

xlsql的原理有点复杂,它使用hsqldb或mysql作为sql引擎,使用excels文件中的数据创建相关数据库和表,然后在数据库上执行查询。它涉及:

    directory -> database
    excel file -> schema
    sheet -> table
因此,它使用模式前缀访问表。例如:

    String sql = "select * from \"demo.xlsqly7\"";  
这里“demo”是不带扩展名的excel文件名,xlsqly7是工作表名。在“XlSQL-Y8.zip”或“XlSQL-Y7.zip”中,有一个示例“TestXlsql.java”。我还写了另一篇:

public static void main(String[] args) throws Exception {
    Class.forName("com.nilostep.xlsql.jdbc.xlDriver");
    String dir = "C:\\Temp\\xlsql-Y7";
    Connection con = DriverManager.getConnection("jdbc:nilostep:excel:"+dir);
    Statement stmt = con.createStatement();
    String sql = "select * from  \"Book1.MergedResult\"";
    ResultSet rs = stmt.executeQuery(sql);
    if(rs.next())
    {
        System.out.println(rs.getString(1));
    }
    else{
        System.out.println("nodata....");
    }

}
另一个约束条件是,工作表的第一行必须是以大写字母开头的列名,否则该工作表将被视为无效


这是关于XLSQL最好的文档:,不幸的是,它是用中文编写的。

XLSQL支持xlsx文件吗?我认为这取决于不支持xlsx文件的jxl。所以,我认为这个库不支持xlsx文件。我说得对吗?