c# Excel.Range使用HTML数据设置单元格值

本文关键字:设置 单元格 数据 HTML Excel Range 使用 | 更新日期: 2023-09-27 18:02:25

我需要找到一种方法来设置excel单元格值与html,并有它显示正确的格式。我们从数据库中加载数据,这些数据有时包含带有文本标记或html边界的html数据。所以我需要能够告诉excel,这是html数据渲染或转换html到excel标记或剥离html标记,但这是不理想的。

var range = (Excel.Range)worksheet.Cells[rowIndex, columnIndex];
range.Value = "<b>This is <i>html text</i></b> that <font>could contain</font> any type of html;<br/>";

c# Excel.Range使用HTML数据设置单元格值

我没有足够的声誉来发表这篇评论,但这里是这样的:在VBA中有一个解决方案,它可以工作,并且可以通过一点点努力将其转换为c#:)

static void Main(string[] args)
    {
        object misValue = System.Reflection.Missing.Value;
        Type excelApplication = Type.GetTypeFromProgID("Excel.Application");
        dynamic excel = Activator.CreateInstance(excelApplication);
        dynamic xlWorkBook = excel.Workbooks.Add(misValue);
        dynamic SourceSheets = xlWorkBook.Worksheets[1];
        Type IeType = Type.GetTypeFromProgID("InternetExplorer.Application");
        dynamic Ie = Activator.CreateInstance(IeType);
        SourceSheets.Range("A1").Value = "<b>This is <i>html text</i></b> that <font>could contain</font> any type of html;<br/>";
        Ie.Visible = false;
        Ie.Navigate("about:blank");
        Ie.document.body.InnerHTML = SourceSheets.Range("A1").Value;
        Ie.document.body.createtextrange.execCommand("Copy");
        SourceSheets.Paste(SourceSheets.Range("A1"));
        Ie.Quit();
        xlWorkBook.SaveAs("test1", misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue, misValue);
    }

这确实是一个基本的翻译。你必须妥善保存/处置你的对象,但它适用于你想做的事情。我只是注意到,而尝试"允许访问"的互联网浏览器的复制/粘贴bin,但我确信有一个解决方案。