好的,我檢查了this SO question,但它一點都沒有幫到我。使用csv文件格式化問題
我需要爲用戶獲取一個csv文件,以便他們可以將其導出到PeopleSoft中。其中一個字段(batch_id)必須是4位數字,並且當前Excel會不斷刪除這些前導零。我還在TextPad中打開了csv文件,並驗證了這些零值已經消失。
因此,繼承人過程:
瀏覽器指向的myapp /批次/當然,如下所示:
@GET
@Path("Batch/{course}")
@Produces("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
@HttpHeader(values="Content-Disposition=attachment;filename=Batch.csv")
public String getNextBatch (@PathParam("course") String course)
{
...
}
在該方法中,Oracle數據庫被查詢和獲取數據發送回作爲XML(在XML中,batch_id具有正確的數字位數)。然後將該XML通過StringBuffer.append()處理成一個長逗號分隔的String,然後該方法返回。 @Produces屬性使用該字符串並確保Excel處理它,並下載文件。
我可以通過在每個逗號後添加製表符來使其顯示爲4位數,但是當它加載到PeopleSoft中時,它會炸彈。如果我單引號引用它(無論是單引號還是引用整個batch_id),我還可以使其顯示正確的4位數字,但又會出現PeopleSoft上傳的問題。
更多信息:我追加數據,這樣的(但在一個循環中):
NodeList participants = XmlUtil.selectNodeList(doc, "Batch/row");
buffer.append("\t" + item.getAttribute("batchid"));
沒有人有任何想法如何讓Excel以正確的行爲?
編輯:我標記了一個解決方案,因爲在任何其他情況下,它會工作。試圖將數據吐出到Excel就像我現在只是一個混亂,所以我只是要改寫它不同的方式。
在這種情況下,那些前導零不會在那裏,我檢查過。如果我將方法標題更改爲text/plain並將文件擴展名更改爲.txt,則無論有多少次我來回更改擴展名,零都在那裏。 這應該只是一個快速和骯髒的解決方案,以獲得數據到Excel,但它看起來可能不會工作。 – Corwin01 2012-04-25 12:45:50