我的应用程序中出现了一些文本问题,事情是在用户添加带格式的文本后,我在数据库中保存了这种格式(HTML)供以后使用。因此,一旦我将其显示给用户,我仍然可以保留格式
文字示例:
bla<br>bla<br>bla bla<br>
为了显示我的控件,这是有效的,我正在使用:
Context.Server.HtmlDecode(e.Row.Cells[i].Text);
Context.Server.HtmlEncode(e.Row.Cells[i].Text);
但问题出现了,当我想将相同的文本导出到Excel文件...
foreach (DataRow row in dr)
{
for (col = 0; col < dtMainSQLData.Columns.Count; col++)
{
rowData[rowCnt, col] = HttpUtility.HtmlEncode(row[col].ToString());
}
rowCnt++;
}
oSheet.get_Range("A2", lastColumn + (rowCnt + 1).ToString()).Value2 = rowData;
一旦我打开excel文件......那个文字就像这样出现了
bla<br>bla<br>bla bla<br>
有没有人知道某种方法将此文本导出到excel文件,但是要保留文本的格式?
谢谢
答案 0 :(得分:0)
这可能不是最佳解决方案,但您可以替换字符串文本:
foreach (DataRow row in dr)
{
for (col = 0; col < dtMainSQLData.Columns.Count; col++)
{
string outputData = row[col].ToString().Replace("<", "<");
outputData = outputData.Replace(">", ">");
rowData[rowCnt, col] = outputData;
}
rowCnt++;
}
答案 1 :(得分:0)
然后你可以创建一个这样的方法来获取文本值。
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml("bla<br>bla<br>bla bla<br>");
var buffer = new StringBuilder();
foreach (var descendant in doc.DocumentNode.Descendants())
{
buffer.Append(descendant.InnerHtml);
}
Console.WriteLine(buffer);