<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    love fish大鵬一曰同風起,扶搖直上九萬里

    常用鏈接

    統計

    積分與排名

    friends

    link

    最新評論

    POI 復制excel一行到另外一個sheet頁(轉)

    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.FileOutputStream;
    import java.io.IOException;

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.hssf.util.Region;
    import org.apache.poi.poifs.filesystem.POIFSFileSystem;

    public class RowCopy {

     
    /**
      * 
    @param args
      * 
    @throws IOException
      * 
    @throws FileNotFoundException
      
    */


     @SuppressWarnings(
    "deprecation")
     
    public static void main(String[] args) {
      
    try {
       POIFSFileSystem fs 
    = new POIFSFileSystem(new FileInputStream(
         
    "exlsample.xls"));
       HSSFWorkbook wb 
    = new HSSFWorkbook(fs);

    //source ,target 為,源sheet 頁和目標sheet頁,
       copyRows(wb, "source""target"3420);
       FileOutputStream fileOut 
    = new FileOutputStream("exlsample.xls");
       wb.write(fileOut);
       fileOut.flush();
       fileOut.close();
       System.out.println(
    "Operation finished");
      }
     catch (Exception e) {
       e.printStackTrace();
      }

     }


     
    public static void copyRows(HSSFWorkbook wb, String pSourceSheetName,
       String pTargetSheetName, 
    int pStartRow, int pEndRow, int pPosition) {
      HSSFRow sourceRow 
    = null;
      HSSFRow targetRow 
    = null;
      HSSFCell sourceCell 
    = null;
      HSSFCell targetCell 
    = null;
      HSSFSheet sourceSheet 
    = null;
      HSSFSheet targetSheet 
    = null;
      Region region 
    = null;
      
    int cType;
      
    int i;
      
    short j;
      
    int targetRowFrom;
      
    int targetRowTo;

      
    if ((pStartRow == -1|| (pEndRow == -1)) {
       
    return;
      }

      sourceSheet 
    = wb.getSheet(pSourceSheetName);
      targetSheet 
    = wb.getSheet(pTargetSheetName);
      
    // 拷貝合并的單元格
      for (i = 0; i < sourceSheet.getNumMergedRegions(); i++{
       region 
    = sourceSheet.getMergedRegionAt(i);
       
    if ((region.getRowFrom() >= pStartRow)
         
    && (region.getRowTo() <= pEndRow)) {
        targetRowFrom 
    = region.getRowFrom() - pStartRow + pPosition;
        targetRowTo 
    = region.getRowTo() - pStartRow + pPosition;
        region.setRowFrom(targetRowFrom);
        region.setRowTo(targetRowTo);
        targetSheet.addMergedRegion(region);
       }

      }

      
    // 設置列寬
      for (i = pStartRow; i <= pEndRow; i++{
       sourceRow 
    = sourceSheet.getRow(i);
       
    if (sourceRow != null{
        
    for (j = sourceRow.getLastCellNum(); j > sourceRow
          .getFirstCellNum(); j
    --{
         targetSheet
           .setColumnWidth(j, sourceSheet.getColumnWidth(j));
         targetSheet.setColumnHidden(j, 
    false);
        }

        
    break;
       }

      }

      
    // 拷貝行并填充數據
      for (; i <= pEndRow; i++{
       sourceRow 
    = sourceSheet.getRow(i);
       
    if (sourceRow == null{
        
    continue;
       }

       targetRow 
    = targetSheet.createRow(i - pStartRow + pPosition);
       targetRow.setHeight(sourceRow.getHeight());
       
    for (j = sourceRow.getFirstCellNum(); j < sourceRow
         .getPhysicalNumberOfCells(); j
    ++{
        sourceCell 
    = sourceRow.getCell(j);
        
    if (sourceCell == null{
         
    continue;
        }

        targetCell 
    = targetRow.createCell(j);
        targetCell.setEncoding(sourceCell.getEncoding());
        targetCell.setCellStyle(sourceCell.getCellStyle());
        cType 
    = sourceCell.getCellType();
        targetCell.setCellType(cType);
        
    switch (cType) {
        
    case HSSFCell.CELL_TYPE_BOOLEAN:
         targetCell.setCellValue(sourceCell.getBooleanCellValue());
         System.out.println(
    "--------TYPE_BOOLEAN:"
           
    + targetCell.getBooleanCellValue());
         
    break;
        
    case HSSFCell.CELL_TYPE_ERROR:
         targetCell
           .setCellErrorValue(sourceCell.getErrorCellValue());
         System.out.println(
    "--------TYPE_ERROR:"
           
    + targetCell.getErrorCellValue());
         
    break;
        
    case HSSFCell.CELL_TYPE_FORMULA:
         
    // parseFormula這個函數的用途在后面說明
         targetCell.setCellFormula(parseFormula(sourceCell
           .getCellFormula()));
         System.out.println(
    "--------TYPE_FORMULA:"
           
    + targetCell.getCellFormula());
         
    break;
        
    case HSSFCell.CELL_TYPE_NUMERIC:
         targetCell.setCellValue(sourceCell.getNumericCellValue());
         System.out.println(
    "--------TYPE_NUMERIC:"
           
    + targetCell.getNumericCellValue());
         
    break;
        
    case HSSFCell.CELL_TYPE_STRING:
         targetCell
           .setCellValue(sourceCell.getRichStringCellValue());
         System.out.println(
    "--------TYPE_STRING:" + i
           
    + targetCell.getRichStringCellValue());
         
    break;
        }


       }


      }


     }


     
    private static String parseFormula(String pPOIFormula) {
      
    final String cstReplaceString = "ATTR(semiVolatile)"//$NON-NLS-1$
      StringBuffer result = null;
      
    int index;

      result 
    = new StringBuffer();
      index 
    = pPOIFormula.indexOf(cstReplaceString);
      
    if (index >= 0{
       result.append(pPOIFormula.substring(
    0, index));
       result.append(pPOIFormula.substring(index
         
    + cstReplaceString.length()));
      }
     else {
       result.append(pPOIFormula);
      }


      
    return result.toString();
     }


    }


    posted on 2007-11-14 16:51 liaojiyong 閱讀(8318) 評論(1)  編輯  收藏 所屬分類: POI

    評論

    # re: POI 復制excel一行到另外一個sheet頁(轉)[未登錄] 2011-12-26 16:02 zz

    請問pPosition參數是什么?  回復  更多評論   

    主站蜘蛛池模板: 亚洲成aⅴ人片在线观| 国产精品亚洲精品日韩动图| 美女羞羞喷液视频免费| 国产免费拔擦拔擦8X高清在线人 | 日日狠狠久久偷偷色综合免费| 免费视频成人手机在线观看网址| 男女免费观看在线爽爽爽视频 | 亚洲国产成人一区二区精品区| 91在线亚洲综合在线| 丝袜捆绑调教视频免费区| 成人免费无码大片A毛片抽搐色欲| 国产亚洲美日韩AV中文字幕无码成人 | 中国国产高清免费av片| 免费av欧美国产在钱| 久久亚洲国产中v天仙www| 亚洲av永久无码精品秋霞电影秋| 在线播放免费人成毛片乱码| 日本一道一区二区免费看| 伊人久久综在合线亚洲2019| 日韩成人毛片高清视频免费看| 午夜性色一区二区三区免费不卡视频 | 一本色道久久88亚洲综合| 亚洲免费电影网站| 中文字幕在线免费看线人| 国产免费av片在线播放| 亚洲日本国产乱码va在线观看| 精品免费久久久久国产一区| 日韩电影免费在线观看视频| 久久亚洲精品成人无码网站| 国产精品免费久久久久久久久| 日韩视频在线免费| 亚洲欧洲精品在线| 九九精品成人免费国产片| 亚洲人成网站在线观看青青| 亚洲日本VA中文字幕久久道具| 三年片在线观看免费观看大全动漫| 亚洲区小说区图片区| 豆国产96在线|亚洲| 97人伦色伦成人免费视频 | 香蕉视频免费在线| 成人午夜视频免费|