导出到Excel导出转换特殊字符的HTML代码

问题描述 投票:0回答:2

我需要出口日期,标题和说明,以excel文件,现在我面临两个问题与Excel文件的出口。

一个特殊字符,例如qazxsw POI和其他字符变成qazxsw POI qazxsw POI等....

所有这些问题都与描述列,它存储在HTML格式的文本。下面是各种格式的文本的例子

实际文本“高尔夫季开幕”标记的,在高尔夫俱乐部,赛季正式开通,开始于2018年3月10。

文本数据库MS SQL Server存储

在“高尔夫季开幕“标记的,在高尔夫俱乐部赛季正式开通,开始于3月10日和2018。

导出到Excel中的“高尔夫季开幕“文本标记的,在高尔夫俱乐部赛季正式开通,开始于3月10日和2018。

我使用下面的代码来创建Excel文件,但我面临的上述问题。

我怎么能存储文本没有被解码文本是Excel的应该是文本格式的商店和所有的特殊字符正确显示没有任何问题

',"

任何帮助,以固定上述问题,并且如果我们能在说明栏中自动换行,如果行可以根据包装的文字自动高度。

只提我使用‘为Excel导出

c# excel office-interop excel-interop
2个回答
0
投票

你可以在一个字符串替换

&

0
投票

解决了这两个问题与下面的代码

首先通过使用HTML var wb = new XLWorkbook(); var ws = wb.Worksheets.Add("Calendar"); DataTable dt = ds.Tables[0]; var rowIndex = 2; // 1 = header row foreach (DataRow row in dt.Rows) { ws.Cell("A" + rowIndex).Value = row["Year"]; ws.Cell("B" + rowIndex).Value = row["Title"]; string noHTML = Regex.Replace(row["Description"].ToString(), @"<[^>]+>|&nbsp;", "").Trim(); string noHTMLNormalised = Regex.Replace(noHTML, @"\s{2,}", " "); ws.Cell("C" + rowIndex).Value = noHTMLNormalised; rowIndex++; } //// From worksheet var rngTable = ws.Range("A1:C" + rowIndex); var rngHeader = ws.Range("A1:C1"); var rngYear = ws.Range("A2:A" + rowIndex); //var rngDate = ws.Range("B2:B" + rowIndex); var rngTitle = ws.Range("B2:D" + rowIndex); var rngDesc = ws.Range("C2:C" + rowIndex); rngHeader.Style.Fill.SetBackgroundColor(XLColor.CoolGrey); rngHeader.Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center; rngHeader.Style.Font.Bold = true; rngHeader.Style.Font.FontColor = XLColor.White; // rngYear.Style.Fill.SetBackgroundColor(XLColor.CoolGrey); rngYear.Style.Font.Bold = true; rngYear.Style.Font.FontColor = XLColor.Black; rngYear.Style.Alignment.Indent = 1; //rngDate.Style.DateFormat.Format = "MM/DD/YYYY"; //rngDate.Style.Alignment.Indent = 10; rngDesc.Style.Alignment.SetWrapText(); ws.RangeUsed().Style.Border.OutsideBorder = XLBorderStyleValues.Thick; var col3 = ws.Column("C"); //col3.Style.Fill.BackgroundColor = XLColor.Red; col3.Width = 100; ws.Columns().AdjustToContents(); string fileName; fileName = "Golf_Calendat.xlsx"; wb.SaveAs(HttpContext.Current.Server.MapPath("../excel/" + fileName)); using Excel = Microsoft.Office.Interop.Excel;

和文本换行的问题与str.replace(/&amp;/g, "&").replace(/&lt;/g, "<").replace(/&gt;/g, ">");

HttpUtility.HtmlDecode
© www.soinside.com 2019 - 2024. All rights reserved.