加上Excel.Application.DisplayAlerts = False這句

解决方案 »

  1.   

    自己搞定了,代码如下:
    private void ExcelFileToCSVFile(string ExcelFile, string CSVFile)
    {
    object missing = System.Reflection.Missing.Value;
    Excel.Application excel = new Excel.ApplicationClass();
    excel.Application.Visible = false;
    excel.Application.Workbooks.Open(ExcelFile, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
    long CSVFileFormatIndex = 6; // TextFileFormatIndex = 3
    excel.Application.ActiveWorkbook.SaveAs(CSVFile, CSVFileFormatIndex, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing);
    excel.Application.ActiveWorkbook.Close(false, missing, false);
    excel.Application.Quit();
    excel = null;
    }
    不过还有一个问题,就是执行之后任务栏有Excel.exe仍在运行,没有关掉.
    解决了立即给分.
      

  2.   

    excel.Workbooks.Close();
    excel.Quit();
      

  3.   

    自己搞定,代码如下:
    private void ExcelFileToCSVFile(string ExcelFile, string CSVFile)
    {
    object missing = System.Reflection.Missing.Value;
    Excel.Application excel = new Excel.Application();
    excel.Visible = false;
    Excel.Workbooks oBooks = excel.Workbooks;
    oBooks.Open(ExcelFile, missing, missing, missing, missing, missing, missing, missing,
    missing, missing, missing, missing, missing); Excel.Workbook oBook = excel.ActiveWorkbook;
    oBook.SaveAs(CSVFile, XlFileFormat.xlCSV, missing, missing, missing, missing, 
    Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing);
    excel.DisplayAlerts = false;
    oBook.Close(false, missing, false);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(oBook);
    oBook = null; System.Runtime.InteropServices.Marshal.ReleaseComObject(oBooks);
    oBooks = null; excel.Quit();
    System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
    excel = null;
    System.GC.Collect();
    }留言者有分.