2013-03-12 51 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);