private void doExport(DataSet ds, string strExcelFileName)
        {
            object objOpt = System.Reflection.Missing.Value;//空值
            Excel.Application excel = new Excel.Application();//声明一个EXCEL程序
            excel.Visible = true;
            Excel._Workbook wkb = excel.Workbooks.Add(objOpt);//声明一个工作簿
            Excel._Worksheet wks = (_Worksheet)wkb.ActiveSheet;//声明一个工作表
            wks.Visible = XlSheetVisibility.xlSheetVisible;
            
            int iSheet=0;
            foreach (System.Data.DataTable dt in ds.Tables)
            {
                int rowIndex = 1;
                int colIndex = 0;
                string currentSheet = "Sheet"+(++iSheet).ToString();
                wks = (_Worksheet)wkb.Worksheets[currentSheet];
                 wks.Activate();
                 wks.Name = currentSheet;
                 wks.Visible = XlSheetVisibility.xlSheetVisible;                foreach (DataColumn col in dt.Columns)
                {
                    colIndex++;
                    excel.Cells[1, colIndex] = col.ColumnName;
                }                foreach (DataRow row in dt.Rows)
                {
                    rowIndex++;
                    colIndex = 0;
                    foreach (DataColumn col in dt.Columns)
                    {
                        colIndex++;
                        excel.Cells[rowIndex, colIndex] = "\'" + row[col.ColumnName].ToString();
                    }
                }
            }            excel.Visible = false;
            System.Windows.Forms.MessageBox.Show(strExcelFileName);
            wkb.SaveAs(strExcelFileName, objOpt, null, null, false, false, XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);
            wkb.Close(false, objOpt, objOpt);//可以编译通过,运行后停在这一行
            excel.Quit();
            excel = null;
            GC.Collect();//垃圾回收
        }运行到wkb.close的时候,停住了,并给出出错信息:
Microsoft Office Excel 不能访问文件“E:\ManifestKey\ManifestKey\bin\Release\ManifestKey.EXE\Reports”。 可能的原因有:

解决方案 »

  1.   

    Microsoft Office Excel 不能访问文件“E:\ManifestKey\ManifestKey\bin\Release\ManifestKey.EXE\Reports”。 可能的原因有:• 文件名称或路径不存在。
    • 文件正被其他程序使用。
    • 您正要保存的工作簿与当前打开的工作簿同名。
      

  2.   

    不会有错啊
    Path.Combine(Application.ExecutablePath,"Reports\\"+txtDateBegin.Text+"-"+txtDateEnd.Text+".XLS")
      

  3.   

    workBook.Close(false, strExcelFileName, Type.Missing);
      

  4.   

     excel.ActiveWorkbook.SaveAs(strExcelFileName + "\\" + timeFlag + ".xls", Excel.XlFileFormat.xlExcel9795, null, null, false, false, Excel.XlSaveAsAccessMode.xlNoChange, null, null, null, null, null);