2012-09-15 64 views
1

我有一個問題,我的客戶之一需要如何存儲Oracle數據庫,並將其轉換到MSACCESS/EXCEL

一個程序,連接到Oracle數據庫服務器和下載/存儲表到本地文件(例如,的Microsoft Access)這樣的客戶端後,轉換 可以輸入一個Excel文件,它會被添加到本地文件

我的客戶想要的本地文件/數據庫可以存儲下線,內部程序文件夾 他們想要的程序做所有的工作,所以他們只給我一個用戶&傳遞到他們的數據庫與一些例子的表和Excel將從客戶端輸入

和程序將做其餘的下載表格,轉換,輸入,最後將打印數據

我知道有很多的教程來的想法連接與Java /更新甲骨文(與OLDBC-JDBC)或開放&修改MSACCESS文件(Excel的轉換)

,但要結合他們所有?你怎麼能在java中做到這一點?

我已經看到有人這樣做,但在VB6 和他的代碼是有點亂

FYI: 的數據是BIG之一,其使用約600.000行 並在每週更新月

回答

0

如果想要的輸出是MS Access,您可能想要探索的方法是Jackcess。其中一個他們給自己的網頁上的例子是複製外部表到MS訪問,這是所有的代碼,你似乎需要:

Database.open(new File("my.mdb")).copyTable("Imported", resultSet); 

我沒有與該庫的第一手經驗,但它看起來相當不錯。

對於Excel輸出我同意克里斯,POi是要走的路。但是,還有一個名爲jXLS的庫,它是POI之上的一個圖層,它簡化了格式化XLS表格的創建過程,檢查出this sample將JDBC結果集(您查詢Oracle的結果)轉換爲漂亮的Excel文件。

編輯:基於對克里斯的回答您的意見,如果確實你得到的是分貝座標以及用戶和傳球,你必須:

第1步:使用DatabaseMetaData拿到表名,示意圖像這樣:

Connection c = DriverManager.getConnection (...); 
DatabaseMetaData md = c.getMetaData(); 
ResultSet rs = md.getTables(null, null, "%", null); 
while (rs.next()) { 
    System.out.println(rs.getString(3)); 
} 

步驟2:遍歷獲得表的列表,並執行表副本如上圖

+0

omg,我真的絕望了一分鐘前, 但像我的問題到克里斯,你怎麼能下載oracle表,直接進入excel(.xls)文件? 謝謝 – Adamanusia

+0

@ user115343我現在很困惑,你想要MDB或XLS或兩者兼而有之嗎?並檢查我的編輯,現在它還顯示如何提取數據庫元數據以獲取表的列表 - 您不希望硬編碼要複製到您的程序中的表的列表。 – fvu

+0

所以它就像我執行從Oracle到Java數據源的表副本,它會轉換爲Excel? 僅供參考的數據是大的,它的大約一千 和VB6的傢伙,我上面提到 不能在這一個 對不起我遲到的答覆,其通過慢速連接 造成我只需要1個文件,無論是MDB或XLS 只要它可以存儲數據 – Adamanusia

1

如果只需要數據,那麼爲什麼不把它下載爲excel,使用Apache POI就可以很容易地進行渲染?即使excel可以作爲數據源(只是不是MS-Access)。您的要求只是將其轉換爲MS-Access?請添加有關您的問題陳述的更多信息。

+0

客戶想要的程序做的所有工作 他們只給我一個用戶傳遞到他們的數據庫 和程序將完成其餘的 下載表格,轉換,輸入,最後它將打印數據 – Adamanusia

+0

@ user115343那麼我的意思是,「客戶端」是否希望它只作爲MS-Access?或者Excel也可以接受? – Chris

+0

接受 之類的標題說 他們只希望,不管它是什麼(文件) 它可以修改的,並且可以從其他人(VB6) – Adamanusia

相關問題