2013-03-12 97 views
2

我有一个包含公式的excel文件。公式使用了一些需要第三方添加的功能。我想在C#中使用下面的代码将excel文件保存为csv。但公式字段显示为错误。如何将公式字段保存为值,然后将其保存在csv中。使用C#将excel文件保存为值使用C#

public static void SaveExcelFileAsCsvAllSheets(string fileName) 
    { 
     var app = new Microsoft.Office.Interop.Excel.Application(); 
     try 
     { 
      Microsoft.Office.Interop.Excel.Workbook wb = app.Workbooks.Open(fileName); 
      app.DisplayAlerts = false; 
      app.ScreenUpdating = false; 
      int sheetCount = 1; 
      foreach (Microsoft.Office.Interop.Excel.Worksheet sht in wb.Worksheets) 
      { 
       if (sht.Visible == XlSheetVisibility.xlSheetVisible) 
       { 
        sht.Select(); 
        wb.SaveAs(Path.GetDirectoryName(fileName) + @"\" + Path.GetFileNameWithoutExtension(fileName) + "-" + sheetCount.ToString() + ".csv", Microsoft.Office.Interop.Excel.XlFileFormat.xlCSV, AccessMode: XlSaveAsAccessMode.xlNoChange); 
        sheetCount++; 
       } 

      } 

      wb.Close(false); 
      app.DisplayAlerts = true; 
      app.ScreenUpdating = true; 
     } 
     catch (Exception ex) 
     { 
      throw; 
     } 
     finally 
     { 
      app.Quit(); 

     } 
    } 

回答

1

选择包含您的数据的范围,然后复制并粘贴到的地方的价值观:

using Excel = Microsoft.Office.Interop.Excel; 
Excel.Range targetRange = (Excel.Range)CurrentSheet.UsedRange; 
targetRange.Copy(Type.Missing); 
targetRange.Paste(Excel.XlPasteType.xlPasteValues, 
    Excel.XlPasteSpecialOperation.xlPasteSpecialOperationNone, false, false);