我现在有一个excel里面有一个sheet,我想根据这个sheet作为模板往后复制新的sheet。具体多少个我会获得,希望高手可以解答如何动态的复制sheet表格

解决方案 »

  1.   

    Excel.Application app = new Excel.ApplicationClass();   
    app.Visible = true;   
    Excel.Workbook workBook = app.Workbooks.Open(templetFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);   
    Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);   
    for(int i=1;i <sheetCount;i++)   
    {   
    ((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing,workBook.Worksheets[i]);   
     
    }
      

  2.   

    打开第一个SHEET获取数据,add添加SHEET
      

  3.   

    首先原来的模板文件里面,增加一个空白的 Sheet ,准备用于粘贴然后 调用 SimpleCopy 方法, 将要复制的sheet复制到 那个空白的 Sheet最后,调用 HideSheet 方法,将 原始数据表, 与 数据透视表, 都隐藏掉。最后,最终用户看到的数据, 就是一个普通的 Sheet。/// <summary>
    /// 简单的 复制 粘贴
    /// 从 源 Sheet 复制到 目标 Sheet.
    /// </summary>
    /// <param name="fromSheetName">从哪个Sheet复制</param>
    /// <param name="toSheetName">粘贴到哪一个Sheet</param>
    /// <param name="startPlace">从目标Sheet的哪个坐标开始粘贴(默认为从A1开始)</param>
    public void SimpleCopy(string fromSheetName, string toSheetName, string startPlace = "A1")
    {
        // 选择源工作表.
        Excel.Worksheet fromSheet = (Excel.Worksheet)xlBook.Sheets.get_Item(fromSheetName);
        // 选择
        fromSheet.Select();
       // 复制.
        fromSheet.UsedRange.Copy();
        // 选择目的工作表.
        Excel.Worksheet toSheet = (Excel.Worksheet)xlBook.Sheets.get_Item(toSheetName);
        // 选择.
        toSheet.Activate();
        toSheet.Select();   // 粘贴格式.
        toSheet.Range[startPlace].PasteSpecial(Excel.XlPasteType.xlPasteFormats);
        // 粘贴数据.
        toSheet.Range[startPlace].PasteSpecial(Excel.XlPasteType.xlPasteValues);
    }
    /// <summary>
    /// 隐藏工作表.
    /// </summary>
    /// <param name="sheetName">需要被隐藏的 Sheet 名称</param>
    public void HideSheet(string sheetName)
    {
        // 选择工作表.
        Excel.Worksheet tmpSheet = (Excel.Worksheet)xlBook.Sheets.get_Item(sheetName);
        // 隐藏.
       tmpSheet.Visible = Excel.XlSheetVisibility.xlSheetHidden;
    }
    参考
    http://hi.baidu.com/wangzhiqing999/blog/item/373e04eaab5dc3332df534a8.html
      

  4.   

    如果我还想获得那个新建的sheet该如何获得啊?