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

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

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

    love fish大鵬一曰同風(fēng)起,扶搖直上九萬里

    常用鏈接

    統(tǒng)計

    積分與排名

    friends

    link

    最新評論

    POI 復(fù)制excel一行到另外一個sheet頁(轉(zhuǎn))

    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 頁和目標(biāo)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);
       }

      }

      
    // 設(shè)置列寬
      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;
       }

      }

      
    // 拷貝行并填充數(shù)據(jù)
      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這個函數(shù)的用途在后面說明
         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 閱讀(8319) 評論(1)  編輯  收藏 所屬分類: POI

    評論

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

    請問pPosition參數(shù)是什么?  回復(fù)  更多評論   

    主站蜘蛛池模板: 久久久久久夜精品精品免费啦| 女同免费毛片在线播放| 亚洲色成人四虎在线观看| 亚洲第一网站免费视频| 国产精品免费看久久久久| 久久国产精品免费专区| 人人玩人人添人人澡免费| 光棍天堂免费手机观看在线观看| 中文字幕免费观看视频| 亚洲AV成人片无码网站| 亚洲日韩在线中文字幕综合| 亚洲人成网站18禁止久久影院| 亚洲国产日韩在线视频| 亚洲国产精品人人做人人爱| 亚洲精品综合久久| 亚洲中文字幕无码一区二区三区 | 久久亚洲国产成人影院| 亚洲av日韩av高潮潮喷无码| 亚洲国产天堂久久综合网站| 中文字幕亚洲精品资源网| 亚洲av之男人的天堂网站| 亚洲国产高清视频| 亚洲人成影院午夜网站| 亚洲精品无码永久在线观看男男| 99亚洲乱人伦aⅴ精品| sihu国产精品永久免费| 美女内射无套日韩免费播放| 免费阿v网站在线观看g| 亚洲电影免费观看| 24小时日本电影免费看| 妞干网免费观看视频| 岛国av无码免费无禁网站| 国产在线a免费观看| 国产在线观看免费不卡| 亚洲日产韩国一二三四区| 中文字幕在线观看亚洲| 亚洲乱码无人区卡1卡2卡3| 一区二区三区免费电影| 91精品啪在线观看国产线免费| 妞干网免费观看视频| 亚洲三区在线观看无套内射|