代码之家  ›  专栏  ›  技术社区  ›  LogInIssue

C#与Excel互操作问题,保存Excel文件不顺畅

  •  10
  • LogInIssue  · 技术社区  · 17 年前

    代码如下:

    excelApp.Save(exportToDirectory);
    excelApp.Quit();
    

    exportToDirectory 是:“C:\files\strings.xlsx”。

    7 回复  |  直到 17 年前
        1
  •  15
  •   Mitch Wheat    14 年前

    你需要使用 Workbook.SaveAs 而不是 Application.Save :

    Excel.Application app = new Excel.Application();
    Excel.Workbook wb = app.Workbooks.Add(missing);
    ...
    wb.SaveAs(@"C:\temp\test.xlsx", missing, missing, missing, missing,
              missing, Excel.XlSaveAsAccessMode.xlExclusive,
              missing, missing, missing, missing, missing);
    
        2
  •  15
  •   Bravax    17 年前

    设置以下属性也可能有所帮助:

    excelApp.DisplayAlerts = false;
    excelApp.ScreenUpdating = false;
    excelApp.Visible = false;
    excelApp.UserControl = false;
    excelApp.Interactive = false;
    
        3
  •  3
  •   Gasy    15 年前

    只需设置 财产 您可以在没有任何对话框的情况下退出();

        4
  •  2
  •   Cᴏʀʏ bcherry    17 年前

    微软是这样做的:

    // Save the Workbook and quit Excel.
    m_objBook.SaveAs(m_strSampleFolder + "Book1.xls", m_objOpt, m_objOpt, 
        m_objOpt, m_objOpt, m_objOpt, Excel.XlSaveAsAccessMode.xlNoChange, 
        m_objOpt, m_objOpt, m_objOpt, m_objOpt);
    m_objBook.Close(false, m_objOpt, m_objOpt);
    m_objExcel.Quit();
    

    KB article

        5
  •  1
  •   Vincent Van Den Berghe    17 年前

    ExcelApp.Interactive = false 禁止显示任何对话框。

    excelApp.ActiveWorkbook.SaveAs(exportDirectory)

        6
  •  1
  •   Bob Kaufman    14 年前

    excelApp.ActiveWorkbook.save() 它可以保存文件,然后我可以不问就退出。

        7
  •  1
  •   Ajay Padharia    12 年前

    myBook.Saved = true;
    myBook.SaveCopyAs(xlsFileName);
    myBook.Close(null, null, null);
    myExcel.Workbooks.Close();
    myExcel.Quit();

    推荐文章