2016-04-25 64 views
-2

我有一個與apache-poi 3.5的Java應用程序。將* .xls * .csv * .xlsx存儲到Microsoft Sql Server中

我的數據庫是Microsoft Sql Server

在我的應用程序做一個上傳,我想知道,如果有可能我的文件(*.xls*.csv*.xlsx)直接存儲在我的數據庫?

+0

您是試圖存儲文件本身(即作爲BLOB)還是文件中的數據(即將電子表格導入SQL表?)。無論哪種方式,是的,這是可能的。 –

回答

1

你可以考慮將文件轉換爲相應的二進制當量(一byte[]),並使用VARBINARY(MAX)字段來存儲內容和文件名,這樣你可以適當地恢復文件):

// Retrieve the byte[] data for your file 
byte[] data = Files.readAllBytes(new File("/path/to/file").toPath()); 
// Write this data to a VARBINARY(MAX) field in SQL here 

處理這個問題有很多種方法,但這將是最幼稚的方法。

+0

好的,我該如何將我的文件轉換爲binaey? – Mercer

+0

有很多方法可以處理這個問題。 [本相關討論](http://stackoverflow.com/q/858980/557445)解決了各種問題,所以這只是一個偏好問題。基本上,你只是想傳入你的文件名或一個指向你的文件的InputStream,並檢索文件的相應數據爲byte [],這樣你就可以將它存儲到數據庫中。 –

+0

我用java 1.5沒有'文件'方法 – Mercer