我需要找到一种方法来使用html设置excel单元格值,并使用正确的格式显示它。我们从数据库加载数据,有时包含带有文本标记或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/>";
答案 0 :(得分:1)
我没有声称将此作为评论发布,但在此处: 仔细看看HTML Text with tags to formatted text in an Excel cell 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);
}
这真的是一个基本的翻译。你必须妥善保存/处理你的对象,但它适用于你想要做的事情。我只是注意到尝试使用互联网资源管理器的“允许访问”复制/粘贴垃圾箱,但我确信有一个工作方法。