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/>";
我没有足够的声誉来发表这篇评论,但这里是这样的:在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,但我确信有一个解决方案。