POI/Tips
をテンプレートにして作成
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
以下の記載は、POI version2.5.1を前提にしています。
#contents
#br
[参考URL]
-[[POIを使用してJavaからExcelデータを読み込む>http://www....
-[[POIを使用してExcelの書式を設定する>http://www.atmarkit...
#br
*** POIで読み込むと壊れるExcelファイルがある [#y57bf55b]
マクロの残骸が残っているのか何なのかよくわからないので...
#ref(excelerror.png,center,nolink);
ちなみに、同ファイルをExcel''2000''で開いた場合はダイア...
*** 行の挿入機能 [#eabfcb14]
行の挿入機能が実装されていません。「行の新規作成」と「...
/**
* Excelシートに行を挿入します。
* @param sheet POIのExcelシートオブジェクト
* @param rowNum 行の番号
* @param templateRowNum コピー元となる行の番号
*/
private void insertRow(HSSFSheet sheet, int rowNum, int ...
try {
sheet.shiftRows(rowNum, sheet.getPhysicalNumberO...
HSSFRow row = sheet.createRow(rowNum);
HSSFRow templateRow = sheet.getRow(templateRowNu...
// 行の高さを複製する。
row.setHeight(templateRow.getHeight());
row.setHeightInPoints(templateRow.getHeightInPoi...
for (int i = 0; i < templateRow.getPhysicalNumbe...
//(1)オリジナル行のCellStyleを流用する。
//オリジナル行のCellStyleに変更を加えたとき...
//新規セルにも反映される。
HSSFCell templateCell = templateRow.getCell(...
HSSFCell cell = row.createCell((short)i);
cell.setCellStyle(templateCell.getCellStyle(...
//(2)オリジナルから複製したCellStyleを使う。
//オリジナル行のCellStyleに変更を加えても、
//新規セルには反映されない。
//cloneCellStyleは独自実装
//cell.setCellStyle(cloneCellStyle(templateC...
//cell.setCellType(templateCell.getCellType(...
//cell.setCellFormula(templateCell.getCellFo...
}
} catch (NullPointerException npe) {
throw new NullPointerException("Excel行追加でエ...
}
}
この際、セルの書式設定をするオブジェクトHSSFCellStyleに...
そうしたくない場合は、HSSFCellStyleのインスタンスを複製...
/**
* セルの書式設定を複製します。
* @param originalStyle 複製元となるPOIのセルスタイルオ...
* @return 複製されたPOIのセルスタイルオブジェクト
*/
private HSSFCellStyle cloneCellStyle(HSSFCellStyle origi...
HSSFCellStyle newStyle = workbook.createCellStyle();
newStyle.setAlignment(originalStyle.getAlignment());
newStyle.setBorderBottom(originalStyle.getBorderBott...
newStyle.setBorderLeft(originalStyle.getBorderLeft());
newStyle.setBorderRight(originalStyle.getBorderRight...
newStyle.setBorderTop(originalStyle.getBorderTop());
newStyle.setBottomBorderColor(originalStyle.getBotto...
newStyle.setDataFormat(originalStyle.getDataFormat());
newStyle.setFillBackgroundColor(originalStyle.getFil...
newStyle.setFillForegroundColor(originalStyle.getFil...
newStyle.setFillPattern(originalStyle.getFillPattern...
newStyle.setFont(workbook.getFontAt(originalStyle.ge...
newStyle.setHidden(originalStyle.getHidden());
newStyle.setIndention(originalStyle.getIndention());
newStyle.setLeftBorderColor(originalStyle.getLeftBor...
newStyle.setLocked(originalStyle.getLocked());
newStyle.setRightBorderColor(originalStyle.getRightB...
newStyle.setRotation(originalStyle.getRotation());
newStyle.setTopBorderColor(originalStyle.getTopBorde...
newStyle.setVerticalAlignment(originalStyle.getVerti...
newStyle.setWrapText(originalStyle.getWrapText());
return newStyle;
}
*** セルの表示形式に関して [#wdd32374]
Excelの「式」形式になっているセルに値を代入しようとした...
*** ヘッダの文字化け [#zb902ddc]
POIは、Excelのヘッダーやフッターも扱うことはできます。...
*** セルの結合 [#m9e9e3e3]
結合されたセルが含まれているシートや行を複製する際に、...
終了行:
以下の記載は、POI version2.5.1を前提にしています。
#contents
#br
[参考URL]
-[[POIを使用してJavaからExcelデータを読み込む>http://www....
-[[POIを使用してExcelの書式を設定する>http://www.atmarkit...
#br
*** POIで読み込むと壊れるExcelファイルがある [#y57bf55b]
マクロの残骸が残っているのか何なのかよくわからないので...
#ref(excelerror.png,center,nolink);
ちなみに、同ファイルをExcel''2000''で開いた場合はダイア...
*** 行の挿入機能 [#eabfcb14]
行の挿入機能が実装されていません。「行の新規作成」と「...
/**
* Excelシートに行を挿入します。
* @param sheet POIのExcelシートオブジェクト
* @param rowNum 行の番号
* @param templateRowNum コピー元となる行の番号
*/
private void insertRow(HSSFSheet sheet, int rowNum, int ...
try {
sheet.shiftRows(rowNum, sheet.getPhysicalNumberO...
HSSFRow row = sheet.createRow(rowNum);
HSSFRow templateRow = sheet.getRow(templateRowNu...
// 行の高さを複製する。
row.setHeight(templateRow.getHeight());
row.setHeightInPoints(templateRow.getHeightInPoi...
for (int i = 0; i < templateRow.getPhysicalNumbe...
//(1)オリジナル行のCellStyleを流用する。
//オリジナル行のCellStyleに変更を加えたとき...
//新規セルにも反映される。
HSSFCell templateCell = templateRow.getCell(...
HSSFCell cell = row.createCell((short)i);
cell.setCellStyle(templateCell.getCellStyle(...
//(2)オリジナルから複製したCellStyleを使う。
//オリジナル行のCellStyleに変更を加えても、
//新規セルには反映されない。
//cloneCellStyleは独自実装
//cell.setCellStyle(cloneCellStyle(templateC...
//cell.setCellType(templateCell.getCellType(...
//cell.setCellFormula(templateCell.getCellFo...
}
} catch (NullPointerException npe) {
throw new NullPointerException("Excel行追加でエ...
}
}
この際、セルの書式設定をするオブジェクトHSSFCellStyleに...
そうしたくない場合は、HSSFCellStyleのインスタンスを複製...
/**
* セルの書式設定を複製します。
* @param originalStyle 複製元となるPOIのセルスタイルオ...
* @return 複製されたPOIのセルスタイルオブジェクト
*/
private HSSFCellStyle cloneCellStyle(HSSFCellStyle origi...
HSSFCellStyle newStyle = workbook.createCellStyle();
newStyle.setAlignment(originalStyle.getAlignment());
newStyle.setBorderBottom(originalStyle.getBorderBott...
newStyle.setBorderLeft(originalStyle.getBorderLeft());
newStyle.setBorderRight(originalStyle.getBorderRight...
newStyle.setBorderTop(originalStyle.getBorderTop());
newStyle.setBottomBorderColor(originalStyle.getBotto...
newStyle.setDataFormat(originalStyle.getDataFormat());
newStyle.setFillBackgroundColor(originalStyle.getFil...
newStyle.setFillForegroundColor(originalStyle.getFil...
newStyle.setFillPattern(originalStyle.getFillPattern...
newStyle.setFont(workbook.getFontAt(originalStyle.ge...
newStyle.setHidden(originalStyle.getHidden());
newStyle.setIndention(originalStyle.getIndention());
newStyle.setLeftBorderColor(originalStyle.getLeftBor...
newStyle.setLocked(originalStyle.getLocked());
newStyle.setRightBorderColor(originalStyle.getRightB...
newStyle.setRotation(originalStyle.getRotation());
newStyle.setTopBorderColor(originalStyle.getTopBorde...
newStyle.setVerticalAlignment(originalStyle.getVerti...
newStyle.setWrapText(originalStyle.getWrapText());
return newStyle;
}
*** セルの表示形式に関して [#wdd32374]
Excelの「式」形式になっているセルに値を代入しようとした...
*** ヘッダの文字化け [#zb902ddc]
POIは、Excelのヘッダーやフッターも扱うことはできます。...
*** セルの結合 [#m9e9e3e3]
結合されたセルが含まれているシートや行を複製する際に、...
ページ名: