我的EXCEL里面有一个已经存在的SHEET,如何复制这个SHEET呢,然后修改一下WORKSHEET.NAME属性,并进行保存.保存到本EXCEL文件里.

解决方案 »

  1.   

    不考虑格式的话用oledb方式。select * into [sheet2$] from [sheet1$]...
    忘记into的位置了,好像是在from的前面。
      

  2.   

       Excel.Application app = new Excel.Application();
                Excel.Worksheet ws;
                Excel.Range rng;
                Excel.Workbook wb = app.Workbooks.Open(@"D:\CData.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
                
                //Excel.Worksheet worksheet = (Excel.Worksheet)wb.Worksheets[1];
                //ws = (Excel.Worksheet)wb.Worksheets.Add(worksheet, Missing.Value, Missing.Value, Missing.Value);
                Excel.Worksheet demosheet = (Excel.Worksheet)wb.Sheets[1];   
                for (int i = 0; i < collection.Count; i++)
                {
                    wb.Worksheets.Copy(Type.Missing, demosheet);
                    //ws = (Excel.Worksheet)wb.Worksheets.Add(Type.Missing, demosheet, Type.Missing, Type.Missing);
                    
                   
                }
                wb.Save();     
                app.Quit();大概是这种形式的,但是这个是垃圾,并且离成功还早,我添加了WORKSHEET,如何得到我添加的这个WORKSHEET呢?感谢关注
      

  3.   

               Excel.Application app = new Excel.Application();
                Excel.Worksheet ws;
                Excel.Range rng;
                Excel.Workbook wb = app.Workbooks.Open(@"D:\CData.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing,
                    Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);            Excel.Worksheet worksheet = (Excel.Worksheet)wb.Worksheets[1];
                ws = (Excel.Worksheet)wb.Sheets[1];
                int formCount=wb.Worksheets.Count;
                for (int i = 0; i < collection.Count; i++)
                {
                    ws.Copy(Missing.Value, ws);
                }
                wb.Save();
                int endCount=wb.Worksheets.Count;
                for (int i = formCount + 1, j = 0; i < endCount + 1; i++, j++)
                {
                    worksheet = (Excel.Worksheet)wb.Worksheets[i];
                    worksheet.Name = collection[j].ToString();
                    rng = worksheet.get_Range("B2", Missing.Value);
                    rng.Value = collection[j].ToString() + "装置列解报表";
                    rng.Font.Name = "宋体";
                    rng.Font.Bold = true;
                    rng.Font.Size = 22;
                }
                wb.Save();
                //wb.Close(true, Missing.Value, Missing.Value);  
                app.Quit();
     
                MessageBox.Show("成功");
    这个在我的机器,单独建立一个工程是没有问题的.
    但是为什么在我的项目里面用,总是在红色那一行抱错:  Exception from HRESULT: 0x800A03EC
    这是为什么呢?
      

  4.   

    如果我把红色的那一行换成: templateSheet = (Excel.Worksheet)workbook.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
    当然前面templateSheet有申明赋值.
    是可以加的.没问题.但是就是源文件就打不开了.打开就抱错了......
      

  5.   

    而且给我加的SHEET还乱放位置,想叫他在最后加,结果随便一个位置给我放上.
    但是使用起来一切正常.就是源文件打不开了