0

セルのデータ形式が単純な通貨形式$#,##0.00 ($1,200.00)からより複雑な形式までさまざまなExcelファイルがあります。

問題は、これらのセルに書き込むときに、フォーマットに従わないことです。したがって、通貨形式のセルに値を入力すると、値は形式なしで表示されます。

例:入力し1234ました。私が期待するのは$1,234.00(Excelセルで定義されているように)です。私が得るものはまだです1234

私の試みの間、私はセル自身のフォーマットをそれ自体に適用しようとさえしました

これは私が使用しているコードです:

ServletContext context = getServletContext();
InputStream inp = context.getResourceAsStream("/WEB-INF/MyExcel.xlsx");

Workbook wbTemp = new XSSFWorkbook(inp);    
Sheet wbTempSheet = wbTemp.getSheetAt(0);

Cell targetCell = wbTempSheet.getRow(0).getCell(0);
targetCell.setCellValue(request.getParameter("myNumber"));

//i even tried reapplying the cell's own format to itself
CellStyle cs = targetCell.getCellStyle();
String df = cs.getDataFormatString();
System.out.println(df);
cs.setDataFormat(wbTemp.createDataFormat().getFormat(df));
targetCell.setCellStyle(cs);

エクセルファイルをチェックすると、フォーマットが実際に実装されていることに気づきました。ただし、セルごとにタブを押して、効果を確認する必要がありました。セルが開いたときにフォーマットされるように、タブアクションをシミュレートする代替または少なくとも方法はありますか?

4

1 に答える 1

1

何が悪いのかを見つけました。そのこの行: targetCell.setCellValue(request.getParameter("myNumber"));

そのはず: targetCell.setCellValue(Double.parseDouble (request.getParameter("myNumber") ));

ダブルスを渡さなければならないので、数値のエクセルセルが適切にフォーマットされることを忘れました。

于 2012-07-10T02:00:49.483 に答える