void GetExcelContent(string filepath,string sFile)
        {     
    Object refmissing = System.Reflection.Missing.Value;
                 Excel._Application exc = new Excel.ApplicationClass();
                           exc.Visible = false;
                Excel.Workbooks workbooks = exc.Workbooks;
                workbooks.Close();
                workbooks.Open(filepath, refmissing, refmissing, refmissing, refmissing, refmissing, refmissing,
                    refmissing, refmissing, refmissing, refmissing, refmissing, refmissing, refmissing, refmissing);
                Excel.Worksheet sheet = (Excel.Worksheet)exc.Worksheets.get_Item(1);
                sheet.Name = sFile;
                workbooks.Close();
                exc.Application.Quit();
                System.Runtime.InteropServices.Marshal.ReleaseComObject(exc);
                exc = null;
                GC.Collect();
}
这段代码我用VS打开不出错,而且成功的,更改了Excel里的名字,
当我用IIS访问的时候就出错了(在本机用IIS访问)
错误信息:'20100722175151$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。 

解决方案 »

  1.   

    sheet.Name = sFile;  sFile请尽量不要出现特殊字符,如$ ,/ 等,否则会出错
      

  2.   

    就算把 sheet.Name = sFile;
    改成 sheet.Name = "123";也要出错 那个$是自动添加的,Excel的工作薄名字后面都有$
      

  3.   


    sheet.Name ="abc"不要用数字试试
      

  4.   

    这个问题我也遇到过,是excel连接字符串的问题,另外如果有多个sheet的话,在获得第一个sheet的时候就break,如果不break就会报错,或者循环取得多个sheet名称.