/**
* サンプルプログラム
* 参考にしたサイト
* http://www.okapiproject.com/java/java_tools/openoffice/
* developer/openoffice_program1.htm
* (本当は1行です。長いので、きりました)
*
*/
import com.sun.star.lang.*;
import com.sun.star.bridge.*;
import com.sun.star.uno.*;
import com.sun.star.frame.*;
import com.sun.star.sheet.*;
import com.sun.star.container.XIndexAccess;
import com.sun.star.table.*;
import com.sun.star.beans.PropertyValue;
import java.sql.*;
import java.util.*;
/**
* OpenOffice.org の表計算(Calc)に「Hello World」と出力する。
*/
public class Sample01 {
/**
* 起動パラメータなし。
* @param args String
*/
public static void main(final String[] args)
{
OpenOffice of = null;
Calc cl = null;
//======================================//
// OpenOfficeと接続 //
//======================================//
XMultiServiceFactory xMSF = null;
try
{
of = new OpenOffice();
xMSF = of.connect();
}
catch (java.lang.Exception e)
{
e.printStackTrace();
System.out.println("OpenOfficeの起動に失敗");
}
//======================================//
//Calc を起動 //
//======================================//
XSpreadsheetDocument myDoc = null;
try
{
cl = new Calc(xMSF);
myDoc = cl.open("private:factory/scalc","_blank");
}
catch (java.lang.Exception e)
{
e.printStackTrace();
System.out.println("表計算の起動に失敗");
}
//======================================//
//シートを取得 //
//======================================//
XSpreadsheet oSheet = null;
try
{
oSheet = cl.getSheetByPosition(myDoc,0);
}
catch (java.lang.Exception e)
{
e.printStackTrace();
System.out.println("シートの取得に失敗");
}
//======================================//
//DB接続 //
//======================================//
Vector allData = new Vector(); //データをここに入れておく
try
{
// ドライバクラスをロード
Class.forName("org.gjt.mm.mysql.Driver");
// データベースへ接続
String url =
"jdbc:mysql://localhost/test?useUnicode=true&characterEncoding=sjis";
Connection con =
DriverManager.getConnection(url,"root","rootのパスワード");
// ステートメントオブジェクトを生成
Statement stmt = con.createStatement();
String sql = "SELECT * FROM user";
// クエリーを実行して結果セットを取得
ResultSet rs = stmt.executeQuery(sql);
ResultSetMetaData meta = rs.getMetaData();
// 検索された行数分ループ
while(rs.next())
{
HashMap mp = new HashMap();
for(int i = 1 ; i <= meta.getColumnCount(); i ++ )
{
mp.put(meta.getColumnName(i),
rs.getString(meta.getColumnName(i)) );
}
allData.add(mp);
}
// データベースから切断
stmt.close();
con.close();
}
catch (java.lang.Exception e)
{
e.printStackTrace();
}
//======================================//
// セルに書き出し //
//======================================//
XCell oCell = null;
try
{
for(int i = 0 ; i < allData.size() ; i ++ )
{
HashMap mp = (HashMap)allData.elementAt(i);
String[] key = (String[]) mp.keySet().toArray(new String[0]);
for(int j = 0 ; j < key.length ; j ++ )
{
oCell = cl.getCell(oSheet,i,j);
oCell.setFormula(key[j] + "=" + (String)mp.get(key[j]));
}
}
}
catch (java.lang.Exception e)
{
e.printStackTrace();
System.out.println("セル書き出しで失敗");
}
//処理終了
System.exit(0);
}
}
|