You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用C#与Syncfusion库生成Excel时无法正常保存文件问题求助

问题原因与修复方案

核心问题排查

  • 路径定义错误:你当前使用的是相对路径@"Documents\\" + "DMBErrors.xlsx",程序会将该路径解析为进程当前工作目录下的Documents子文件夹,而非系统默认的用户文档目录。如果是Visual Studio调试运行,默认工作目录为项目的bin/Debug/对应框架版本路径,你可以前往该目录下查找文件。同时你混用了逐字字符串标识@和双反斜杠转义,会导致实际路径格式异常。
  • 目录不存在静默失败:如果你指定的相对路径下的Documents文件夹不存在,部分Excel处理库版本不会主动抛出异常,也不会自动创建目录,会直接跳过保存操作。
  • 权限不足:程序运行身份没有对应路径的写入权限时,异常可能被库内部捕获未向外抛出。

修复代码

把保存逻辑替换为以下实现即可:

using (ExcelEngine excelEngine = new ExcelEngine())
{
    //Initialize application
    IApplication application = excelEngine.Excel;

    //Set the default application version as Excel 2016
    application.DefaultVersion = ExcelVersion.Excel2016;

    //Create a new workbook
    IWorkbook workbook = application.Workbooks.Create(1);

    //Access first worksheet from the workbook instance
    IWorksheet worksheet = workbook.Worksheets[0];

    connection.Open();
    SqlCommand cmd = new SqlCommand(PHLIP251, connection);
    PHLIP251Datatable.Load(cmd.ExecuteReader());

    worksheet.ImportDataTable(PHLIP251Datatable, true, 1, 1);
    worksheet.UsedRange.AutofitColumns();

    // 修复:获取系统文档目录绝对路径
    string documentPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
    // 修复:用Path.Combine自动处理路径拼接,避免转义错误
    string saveFullPath = Path.Combine(documentPath, "DMBErrors.xlsx");
    // 可选:输出完整路径方便后续定位文件
    Console.WriteLine("文件保存路径:" + saveFullPath);
    //Save the workbook to disk in xlsx format
    workbook.SaveAs(saveFullPath);
    connection.Close();
}

内容的提问来源于stack exchange,提问作者user16188164

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 20:57:02