- PR -

POI 罫線を消さない方法

1
投稿者投稿内容
mmorishita
会議室デビュー日: 2008/10/27
投稿数: 6
投稿日時: 2008-10-27 14:21
下記のように、POIを使って
読み込んだテンプレートを
一部書き換えるPGを作成してみたのですが、

setDataFormatを使って書式を設定して書き込んだ箇所が
テンプレートの罫線を消してしまいます。
何かよい方法はありますでしょうか?

ご教示お願い致します。




【PG】
package jp.javadrive;


import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFDataFormat;
import org.apache.poi.hssf.usermodel.HSSFDateUtil;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

/*
* SamplePOI01.java
*/

public class sample02 {

static String[][] cellValue = {
{"2007/01/31", "200000", "210000"},
{"2007/02/28", "203000", "200000"},
{"2007/03/31", "206000", "210000"}
};

@SuppressWarnings("deprecation")
public static void main(String[] args) {
try {
//テンプレートファイルを開く
FileInputStream in = new FileInputStream("aaa2.xls");
HSSFWorkbook workbook = new HSSFWorkbook(in);
HSSFSheet sheet = workbook.getSheetAt(0);

for (int i = 0; i < 3; i++) {
//行は0行目から始まる
HSSFRow row = sheet.getRow(i + 17);
HSSFCell cell1 = row.getCell((short)0);
SimpleDateFormat dformat = new SimpleDateFormat("yyyy/MM/dd");
Date date = dformat.parse(cellValue[i][0]);
cell1.setCellValue(date);
HSSFCell cell3 = row.getCell((short)2);
cell3.setCellType(HSSFCell.CELL_TYPE_NUMERIC);
cell3.setCellValue(Integer.parseInt(cellValue[i][2]));
HSSFCellStyle style3 = workbook.createCellStyle();

style3.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));
cell3.setCellStyle(style3);
cell3.setCellStyle(style3);
}
//結果ファイルを保存する
FileOutputStream out = new FileOutputStream("result.xls");
workbook.write(out);

in.close();
out.close();
} catch (Exception ex) {
ex.printStackTrace();
}

}

}

taqu
ベテラン
会議室デビュー日: 2007/01/22
投稿数: 54
投稿日時: 2008-10-27 14:58
http://www.javaroad.jp/bbs/answer.jsp?q_id=20081025013644838
1

スキルアップ/キャリアアップ(JOB@IT)