我根据需要将页面中的值保存到excel文件中,在保存时我用excel.saveWorkSpace保存文件,但是文件的默认名怎么改成自己想要的,它默认为Sheet1
着急,大虾们,帮帮忙啊,小弟第一次在csdn里发帖,如有不周还请谅解asp.netexcel

解决方案 »

  1.   

    設置worksheet.Name = "Sheet名字";如下:
    #region 创建Excel及worksheet
                        ConExcel.Workbooks workbooks = xlApp.Workbooks;
                        ConExcel.Workbook workbook = workbooks.Add(ConExcel.XlWBATemplate.xlWBATWorksheet);
                        ConExcel.Range range = null;                    ConExcel.Worksheet worksheet = (ConExcel.Worksheet)workbook.Worksheets.get_Item(workbook.Worksheets.Count);
                        workbook.Worksheets.Add(Type.Missing, worksheet, Type.Missing, Type.Missing);//取得sheet1
                        worksheet.Name = "Sheet名字";
                        #endregion
      

  2.   

    ConExcel.Worksheet worksheet = 
     worksheet.Name = "Sheet名字";    1楼正解! 
      

  3.   

    另外如下不知是否對你有幫助:
    FileInfo fi = new FileInfo(newPath);//excelFile为文件在服务器上的地址
            HttpResponse contextResponse = HttpContext.Current.Response;
            contextResponse.Clear();
            contextResponse.Buffer = true;
            contextResponse.Charset = "UTF-8";
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Excel名稱.xls", System.Text.Encoding.UTF8));
            contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
            contextResponse.ContentEncoding = Encoding.Default;
            contextResponse.ContentType = "application/ms-excel";//這個是保存的類型,我這裡是.xls
            contextResponse.WriteFile(fi.FullName);
            contextResponse.Flush();        int indexSub = newPath.LastIndexOf(@"\");
            string locationSub = "";
            locationSub = newPath.Substring(0, indexSub);
            System.IO.DirectoryInfo filePath = new System.IO.DirectoryInfo(locationSub);
      

  4.   

    ConExcel是什么?我这里是这样的
      

  5.   

    using ConExcel = Microsoft.Office.Interop.Excel;
    引用了Microsoft.Office.Interop.Excel.dll
      

  6.   

    那我那样写也没有错吧,最后我是这样保存的
                        worksheet.Application.DisplayAlerts = false;//显示提示信息
                        worksheet.Name = fileName;
                        //workbook.SaveAs(, missing, missing, missing, missing, missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
                        excel.SaveWorkspace(fileName);
    但是为什么弹出框的默认文件名还是sheet1,而不是我想要的那个fileName。麻烦您了
      

  7.   

    那我那样写也没有错吧,最后我是这样保存的
                        worksheet.Application.DisplayAlerts = false;//显示提示信息
                        worksheet.Name = fileName;
                        //workbook.SaveAs(, missing, missing, missing, missing, missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
                        excel.SaveWorkspace(fileName);
    但是为什么弹出框的默认文件名还是sheet1,而不是我想要的那个fileName。麻烦您了
    不好意思,这个我也不太清楚,我用的是如下方式保存:
    FileInfo fi = new FileInfo(newPath);//newPath为文件在服务器上的地址
            HttpResponse contextResponse = HttpContext.Current.Response;
            contextResponse.Clear();
            contextResponse.Buffer = true;
            contextResponse.Charset = "UTF-8";
            System.Web.HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("Excel名稱.xls", System.Text.Encoding.UTF8));
            contextResponse.AppendHeader("Content-Length", fi.Length.ToString());
            contextResponse.ContentEncoding = Encoding.Default;
            contextResponse.ContentType = "application/ms-excel";
            contextResponse.WriteFile(fi.FullName);
            contextResponse.Flush();