[OK]を私はthis SO questionをチェックしましたが、それはまったく手伝っていません。csvファイルでのフォーマットの問題
ユーザーにcsvファイルを取得する必要があるため、PeopleSoftにエクスポートできます。フィールドの1つ(batch_id)は正確に4桁でなければならず、現在のところ、Excelは先行ゼロを削除し続けます。私もTextPadでcsvファイルを開いて、そのゼロがなくなっていることを確認しました。
だから、HERESにプロセス:
ブラウザは、以下のように/バッチ/コースを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()を介して1つの長いカンマ区切りの文字列に処理されます。 @Produces属性はそのStringを受け取り、Excelがそれを処理し、ファイルがダウンロードされるようにします。
カンマの後にタブを追加することで4桁の数字が表示されますが、PeopleSoftに読み込まれると爆弾が表示されます。一重引用符(1つの先頭引用符、または全体のbatch_idを引用符で囲む)を引用すると正しい4桁の数字が表示されますが、もう一度PeopleSoftのアップロードの問題が発生します。
さらに詳しい情報:私は、このような(しかし、ループ内)などのデータを追加しています:
NodeList participants = XmlUtil.selectNodeList(doc, "Batch/row");
buffer.append("\t" + item.getAttribute("batchid"));
誰もがExcelが正しく動作するように取得する方法任意のアイデアを持っていますか?
編集:それ以外の場合は機能するので、解決策をマークしました。今の私のようにデータをExcelに吐き出すのはちょっとしたことなので、別の方法で書き直すつもりです。
この場合、先行するゼロは存在しません。私はチェックしました。メソッドのヘッダーをtext/plainに変更し、ファイル拡張子を.txtに変更すると、拡張子を前後に何度変更しても、ゼロがそこにあります。 これは、データをExcelに取得するための短時間で汚れた解決策であると考えられていましたが、おそらくそれはうまくいかないようです。 – Corwin01