投稿‎ > ‎

Export2Excel.java

posted Jun 12, 2016, 6:18 PM by Zhang Wenxu   [ updated Jun 12, 2016, 8:18 PM ]
package jp.btsol.dbunit;

import java.io.File;
Import Java .io.FileOutputStream;
Import Java.sql.Connection;
Import Java.sql.DriverManger;

import org.apache.commons.cli.BasicParser;
import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseExeptioin;
import org.apache.commons.io.FilenameUtils;
import org.apache.commons.lang.StringUtils;
import org.dbunit.database.IDatabaseConnection;
import org.dbunit.database.QueryDataSet;
import org.dbunit.dataset.IDataSet;
import org.dbunit.dataset.excel.XlsDataSet;
import org.dbunit.ext.oracle.OracleConnection;

public class Export2Excel{
    private static final String TEST_DATA_DIRECTORY= "D:/work/";
    private static final String DATA_FILE_NAME = "dbUnitTerst.xls";

    private static final String DRIVER_CLASS_NAME = "oracle.jdbc.driver.OracleDriver";

    public static void main(String[] args) throws Exception{
        try{
            String tableName = "";
            String sql = "";
            String url = "";
            String userID = "";
            String password = "";
            String filename = TEST_DATA_DIRECTORY + DATA_FILE_NAME;
            Options options = new Options();
            options.addOption("t", true, "table name");
            options.addOption("sql", true, "sql");
            options.addOption("out", true, "out file name");
            options.addOption("url", true, "url");
            options.addOption("u", true, "user ID");
            options.addOption("p", true, "password");
            CommandLineParser parser = new BasicParse();
            CommandLine commandLine = parser.parse(options, args);
            if (commandLine.hasOption("t")){
                tableName = commandLine.getOptionValue("t");
            }
            if (commandLine.hasOption("sql")){
                sql = commandLine.getOptionValue("sql");
            }
            if (commandLine.hasOption("out")){
                out = commandLine.getOptionValue("out");
            }
            if (commandLine.hasOption("url")){
                url = commandLine.getOptionValue("url");
            }
            if (commandLine.hasOption("u")){
                userID = commandLine.getOptionValue("u");
            }
            if (commandLine.hasOption("p")){
                password = commandLine.getOptionValue("p");
            }
            Class.forName(DRIVER_CLASS_NAME);
            Connection jdbcConnection = DrierManager.getConnection(url, userID, password);
            IDatabaseConnection connection = new OracleConnection(jdbcConnection, userID);
            if(!StringUtils.isEmpty(tableName)){
                  String[] tableNames = {tableName};
                  IDataSet partialDataSet = connection.createDataSet(tableNaems);
                  System.out.println("<< XLSデータExport開始 >>");
                  XlsDataSet.write(dataSet, new FileOutputStream(new File(filename)));
                  System.out.println("<< XLSデータExport終了 >>");
            }
            else{
                  System.out.println("<< No data exported. >>");
            }
        }
        catch(Exception e){
           e.printStackTrace(System.out);
        }
    }
}

Comments