c# - 使用 C# 将 excel 文件另存为值

标签 c# excel

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

 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();

        }
    }

最佳答案

选择包含您的数据的范围,然后将值复制并粘贴到位:

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);

关于c# - 使用 C# 将 excel 文件另存为值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15364785/

相关文章:

c# - 正则表达式不能在土耳其语字符上正常工作

vba - 在 Excel 中快速将 Textformat 转换为 Numberformat - VBA

vba - 如何将所有类硬编码值保存在一个地方

即使在 Excel 中禁用了自动更正,Python 代码也会自动将 Excel 工作表中的 "..."转换为 "…"

c# - 单元测试域模型对象

c# - 获取对其构造函数抛出异常的实例的引用

c# - 为什么在这个特定的 WinForms 应用程序中会发生死锁?

c# - 有方法的属性?

python - Pandas - 拆分大型 excel 文件

java - 验证 MM/dd/yyyy 格式的 Excel 日期