1

SpringMVCとExcelに問題があります。Excelファイルをデータベースにlobとして保存します。私のエンティティデータベースのこの部分のようにPostgreSQLです

    @Lob
    @Column(name = "Exel")
    private String exel;

次に、DBから取得したいのですが、ユーザーはWebページからダウンロードできます。これはコントローラーです。

@RequestMapping(value = "/downloadExelTemplate.xls", method = RequestMethod.GET)
    public void downloadExelTemplate(HttpServletResponse response)
            throws IOException {
        response.setContentType("application/x-msexcel");
        ExelDTO exel = service.getExel(new Long(1));
        InputStream is = new ByteArrayInputStream(exel.getExel().getBytes());
        BufferedWriter outex = new BufferedWriter(new FileWriter("out.xls"));
        outex.write(exel.getExel());
        outex.close();
        ServletOutputStream out = response.getOutputStream();
        out.write(exel.getExel().getBytes());
        is.close();
        out.close();
    }

そして、私はバグのある適切なxlsファイルを取得しません。私を助けてください。なにが問題ですか?ストリームからファイルを取得する場合も同じ効果があります。

4

1 に答える 1

0

だから私は私の問題を解決し、休止状態のエンティティのデータのタイプを次のように変更します

@Lob
byte[] exelData;

そしてすべてがうまくいきます。テキスト ファイルしかない場合、@lob を文字列にマッピングするのに問題はありませんでしたが、ms office 形式に接続すると失敗します。それで、データファイルを正しく保持する方法を学びました。

于 2012-06-30T09:36:18.010 に答える