獲取文件後的只讀從第三方站點下載excel文件並相應地更新數據庫的計劃任務。在ColdFusion中使用cfhttp
我可以通過url成功下載該文件(即http://www.example.com/myExcel.xls
)。但是當我嘗試閱讀後,使用Ben Nadel的POIUtility.cfc,我得到各種錯誤。這似乎是由於當我下載帶有CFHTTP
的文件時,它以只讀格式保存。
這種行爲聽起來是否對任何人都熟悉,或者是否有人知道如何保存文件,使其不是隻讀?
在此先感謝。代碼
部分:六月
<cfhttp method="get"
url="http://www.example.com/myExcel.xls"
path="#expandpath('xls')#" file="stocks.xls" />
<cfset objPOI = CreateObject("component", "POIUtility").Init()/>
<cfset arrSheets = objPOI.ReadExcel(FilePath = ExpandPath("xls/stocks.xls")
, HasHeaderRow = true) />
UPDATE月22日: 我收到的錯誤是:
Object instantiation exception.
An exception occurred while instantiating a Java object. The class must not be an interface or an abstract class. Error: ''.
The error occurred in /Volumes/RAID/DATA/ColdFusion9/wwwroot/website/POIUtility.cfc: line 883
Called from /Volumes/RAID/DATA/ColdFusion9/wwwroot/website/autoUpdateStock.cfm: line 36
Called from /Volumes/RAID/DATA/ColdFusion9/wwwroot/website/POIUtility.cfc: line 883
Called from /Volumes/RAID/DATA/ColdFusion9/wwwroot/website/autoUpdateStock.cfm: line 36
881 : "org.apache.poi.hssf.usermodel.HSSFWorkbook"
882 : ).Init(
883 : LOCAL.ExcelFileSystem
884 : );
885 :
如果我直接從我的操作系統中打開下載的文件excel中的狀態欄也會顯示「(只讀)」。如果我將文件另存爲一個不同的文件名,然後在POI代碼中使用該新文件名,它可以毫無問題地工作。
我有一個類似的錯誤,前一段時間問題不支持excel文件導致POI給出相同的錯誤。但是這個excel文件不包含像graph等特殊的東西,只是沒有datafilters的普通數據。
我在想也許源文件保存在POI工具不支持的excel格式中,但是當我查看文件的信息窗口時,它說「Kind:Microsoft Excel 97-2004 workbook」,它是相同的就像我嘗試過的其他文件一樣(那些工作)。
代碼: –
Juggala
您是否通過下載文件,使其可寫,然後執行POI內容(如果這樣做,沒有錯誤,從而證明您的理論是正確的),測試了您的理論?這對你的情況非常重要。 –
請給出一個實際的錯誤或兩個。通常,當您使用cfhttp提取文件時,該文件將被保存爲只讀文件。但是,您可能需要授予執行權限才能真正讀取文件。再一次,實際的錯誤信息會有所幫助。你能用FileOpen(ExpandPath(「xls/stocks.xls」))來打開文件嗎? –