【问题标题】:Inserting Image in Excel from String从字符串在 Excel 中插入图像
【发布时间】:2011-12-20 07:23:19
【问题描述】:

我正在从以下代码生成一个 CSV 文件

public ActionResult Index()
{
    var csv = "मानक हिन्दी;some other value";
    var data = Encoding.UTF8.GetBytes(csv);
    data = Encoding.UTF8.GetPreamble().Concat(data).ToArray();
    var cd = new ContentDisposition
    {
        Inline = false,
        FileName = "newExcelSheet.csv"
    };
    Response.AddHeader("Content-Disposition", cd.ToString());
    return File(data, "text/csv");
}

现在我想在excel的第一行插入图片,请帮助我解决以下问题

谢谢:)

【问题讨论】:

  • 您可以将位图对象编码为 int Base64String 并从 Base64String 中取回字符串。

标签: c# image excel


【解决方案1】:

CSV 不是一种能够包含图像等二进制数据的格式。您可以在 CSV 文件中包含的唯一内容是文本

如果您需要将图像添加到 excel 文档,则必须使用正确的 excel 文件(即 .xls.xlsx 文件)。有多种 API 可用于写入此类文件,包括安装 Office 时通过 COM 公开的Excel Object Model

有关如何通过 COM 插入图像的详细信息,请参阅this question

【讨论】:

【解决方案2】:

如果不使用互操作程序集,您将无法做到这一点。你要么走这条路,要么下载 epplus,一个免费的 Excel .Net 库,支持你所需要的。

网站上的代码示例:

http://epplus.codeplex.com/

【讨论】:

    【解决方案3】:

    CSV 不支持您要求的 AND Interop is officially NOT supported by MS in server-scenarios (like ASP.NET...)

    您将需要创建“真实”的 Excel 文件(XLS 或 XLSX) - 创建 Excel 文件的一些选项:

    MS 提供免费的 OpenXML SDK V 2.0 - 请参阅 http://msdn.microsoft.com/en-us/library/bb448854%28office.14%29.aspx

    这可以读写 MS Office 文件(包括 Excel XLSX 但不包括 XLS!)。

    另一个选项见http://www.codeproject.com/KB/office/OpenXML.aspx

    如果您需要更多类似的渲染、公式等。那么有不同的免费和商业库,如 ClosedXMLEPPlusAspose.CellsSpreadsheetGearLibXLFlexcel

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 2017-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多