1

我在我的 wpf 应用程序中使用 ExcelPackage 来生成 csvs 和 xlsxs,每当我在 excel 中打开由 epplus 生成的 xlsx 时,它都会打开而没有错误,但是当我在 excel 中打开生成的 csv 时,它会显示我

““filename.csv”的文件格式和扩展名不匹配。该文件可能已损坏或不安全。除非您信任其来源,否则不要打开它。仍然要打开它吗?

按是打开文件没有问题,但这个错误向用户显示并且很烦人,所以我想修复它..

生成 csv 的代码没有什么花哨的。

using (ExcelPackage p = new ExcelPackage(new FileInfo(path + filename)))
{
    //Create a sheet
    p.Workbook.Worksheets.Add("User Ids");
    ExcelWorksheet ws = p.Workbook.Worksheets[1];

    for (int i = 0; i < lstCsvUsers.Items.Count; i++)
    {
        ws.Cells[i + 1, 1].Value = lstCsvUsers.Items[i].ToString();
    }

    if (!Directory.Exists(path))
        Directory.CreateDirectory(path);

    p.Save();
}

但是,当用户在 excel/其他软件中打开生成的文件时,是否缺少一些东西来防止向用户显示此错误?

4

1 回答 1

2

EPPLus 不生成 CSV 文件 - 仅生成 xlsx 格式。如果您在路径中为其提供 .csv 扩展名,它将使用扩展名保存文件,但它仍然是 .xlsx。它打开是因为 Excel 能够确定这一点 - 因此发出警告。

如果您需要生成 CSV,那么有很多示例说明如何在没有 EPPlus 的情况下执行此操作。

在 .net 中编写 CSV 文件

于 2015-07-19T12:34:29.403 回答