public boolean Print() {
try {
intPage = 0;
FileInputStream ExcelFile = new FileInputStream("hoge.xls");
POIFSFileSystem fs = new POIFSFileSystem(ExcelFile);
HSSFWorkbook workbook = new HSSFWorkbook(fs);
HSSFSheet newSheet = workbook.getSheetAt(0);
// 先に次ページを複製 図形はだめみたい。JExcelApiはできるそうな。
workbook.cloneSheet(intPage);
//シート名をセット
workbook.setSheetName(intPage, String.valueOf(intPage + 1));
// 選択
workbook.getSheetAt(intPage).setSelected(true);
newSheet = workbook.getSheetAt(intPage);
// 各セルをマージする。
setMerge(newSheet);
//値をセット
setCellValue(newSheet, 1, 2, "ほげ");
//テンプレートページを消す
workbook.removeSheetAt(intPage + 1);
//新しいファイルに書き込み
FileOutputStream out = new FileOutputStream("hogenew.xls");
workbook.write(out);
out.close();
} catch (Exception e) {
e.printStackTrace();
return false;
}
return true;
}
// セルのマージ
private void setMerge(HSSFSheet newSheet) {
// タイトル Row1Col2からRow1Col4までをマージしている。
newSheet.addMergedRegion(new Region(1 - 1, (short) (2 - 1), 1 - 1, (short) (4 - 1)));
}
//値をセット 以下はオーバロード
private void setCellValue(HSSFSheet newSheet, int Row, int Col, String value) {
if (value == null) {
value = " ";
}
newSheet.getRow(Row - 1).getCell((short) (Col - 1)).setEncoding(HSSFCell.ENCODING_UTF_16); //日本語用
newSheet.getRow(Row - 1).getCell((short) (Col - 1)).setCellValue(value);
}
private void setCellValue(HSSFSheet newSheet, int Row, int Col, int value) {
newSheet.getRow(Row - 1).getCell((short) (Col - 1)).setCellValue(value);
}
private void setCellValue(HSSFSheet newSheet, int Row, int Col, long value) {
newSheet.getRow(Row - 1).getCell((short) (Col - 1)).setCellValue(value);
}
private void setCellValue(HSSFSheet newSheet, int Row, int Col, float value) {
newSheet.getRow(Row - 1).getCell((short) (Col - 1)).setCellValue(value);
}

解决方案 »

  1.   

    public   boolean   Print()   { 
    try   { 
    intPage   =   0; 
    FileInputStream   ExcelFile   =   new   FileInputStream( "hoge.xls "); 
    POIFSFileSystem   fs   =   new   POIFSFileSystem(ExcelFile); 
    HSSFWorkbook   workbook   =   new   HSSFWorkbook(fs); 
    HSSFSheet   newSheet   =   workbook.getSheetAt(0); 
    //   复制源page   不支持图片和JExcelApi 
    workbook.cloneSheet(intPage); 
    //设定sheet名
    workbook.setSheetName(intPage,   String.valueOf(intPage   +   1)); 
    //选择目标sheet 
    workbook.getSheetAt(intPage).setSelected(true); 
    newSheet   =   workbook.getSheetAt(intPage); 
    // 合并单元格 
    setMerge(newSheet); 
    //设定单元格值 
    setCellValue(newSheet,   1,   2,   "ほげ "); 
    //删除模板页 
    workbook.removeSheetAt(intPage   +   1); 
    //写入新文件
    FileOutputStream   out   =   new   FileOutputStream( "hogenew.xls "); 
    workbook.write(out); 
    out.close(); 
    }   catch   (Exception   e)   { 
    e.printStackTrace(); 
    return   false; 

    return   true; 

    // 合并单元格
    private   void   setMerge(HSSFSheet   newSheet)   { 
    //  标题Row1Col2到Row1Col4合并 
    newSheet.addMergedRegion(new   Region(1   -   1,   (short)   (2   -   1),   1   -   1,   (short)   (4   -   1))); 

    //设定值以下函数为重载
    private   void   setCellValue(HSSFSheet   newSheet,   int   Row,   int   Col,   String   value)   { 
    if   (value   ==   null)   { 
    value   =   "   "; 

    newSheet.getRow(Row   -   1).getCell((short)   (Col   -   1)).setEncoding(HSSFCell.ENCODING_UTF_16);   //日本語用 
    newSheet.getRow(Row   -   1).getCell((short)   (Col   -   1)).setCellValue(value); 

    private   void   setCellValue(HSSFSheet   newSheet,   int   Row,   int   Col,   int   value)   { 
    newSheet.getRow(Row   -   1).getCell((short)   (Col   -   1)).setCellValue(value); 

    private   void   setCellValue(HSSFSheet   newSheet,   int   Row,   int   Col,   long   value)   { 
    newSheet.getRow(Row   -   1).getCell((short)   (Col   -   1)).setCellValue(value); 

    private   void   setCellValue(HSSFSheet   newSheet,   int   Row,   int   Col,   float   value)   { 
    newSheet.getRow(Row   -   1).getCell((short)   (Col   -   1)).setCellValue(value); 
    }