我有一个用ASP.NET和C#构建的审核系统,用户可以在其中插入注释,这些注释可以使用表(<table>)
进行HTML格式化,“输入”(<br>)
,列出{{1带有下划线的文字(<ul><li>)
,拉丁文字母(í,ó,á,é,ú)等等。
我需要将这些注释导出到Excel单元格中,并且只需要在一个单元格中正确呈现其HTML元素。
应该如下所示:
我尝试使用互操作,但我只是将其视为纯文本
(<u>)
像这样:
我也尝试将其复制到剪贴板,但我弄得一团糟:
worksheet.Cells[1, 1] = htmlText;
我看到它就像这样
我也试过iceblue,但它只支持“span”元素和段落,而不支持表格,列表等复杂元素。
有什么想法吗?
答案 0 :(得分:1)
好的,我在html-text-with-tags-to-formatted-text-in-an-excel-cell
找到了类似的内容区别在于他们在Excel中工作,你有一个ASP.NET站点;所以我们必须要有点创意。
步骤1:引用以下COM对象“Microsoft Internet Controls”(SHDocView)
步骤2:将以下using语句添加到您的代码中
using SHDocVw;
第3步:尝试以下代码:
var ie = new InternetExplorer();
ie.Visible = false;
ie.Navigate("about:blank");
ie.Document.body.innerHTML = htmlTable; //Yes, this is the correct casing
ie.Document.body.createtextrange.execCommand("Copy");
var xlExcel = new Application();
xlExcel.Visible = true;
var misValue = System.Reflection.Missing.Value;
var xlWorkBook = xlExcel.WorkBooks.Add(misValue);
var xlWorkSheet = (WorkSheet)xlWorkBook.Worksheets.get_Item(1);
var range = (Range)xlWorkSheet.Cells[1, 1];
range.Select();
xlWorkSheet.Paste();