_x00D_通过使用 EPPlus 库显示在 Excel 中
本文关键字:显示 Excel x00D EPPlus | 更新日期: 2023-09-27 18:35:52
我正在使用EPPlus 3.0(codeplex最新库)库下载excel文件。一切正常,但有些列显示"_x00D_"
数据字符串。我在谷歌上研究过,每个人都说这是换行符。我尝试了所有方案仍然不起作用。
请指教我。
Using pck As New ExcelPackage()
'Create the worksheets
Dim wsAll As ExcelWorksheet = pck.Workbook.Worksheets.Add("All")
Dim wsManufacturing As ExcelWorksheet = pck.Workbook.Worksheets.Add("Manufacturing")
Dim wsHealthcare As ExcelWorksheet = pck.Workbook.Worksheets.Add("Healthcare")
Dim wsManagement As ExcelWorksheet = pck.Workbook.Worksheets.Add("Management")
Dim wsSelling As ExcelWorksheet = pck.Workbook.Worksheets.Add("Selling")
'Load the datatable into the sheet, starting from cell A1. Print the column names on row 1
wsAll.Cells("A1").LoadFromDataTable(dtAllDownload, True)
If dtManufacturing.Rows.Count > 0 Then
wsManufacturing.Cells("A1").LoadFromDataTable(dtManufacturing, True)
End If
If dtChinaHealthcare.Rows.Count > 0 Then
wsHealthcare.Cells("A1").LoadFromDataTable(dtHealthcare, True)
End If
If dtChinaManagement.Rows.Count > 0 Then
wsManagement.Cells("A1").LoadFromDataTable(dtManagement, True)
End If
If dtSelling.Rows.Count > 0 Then
wsSelling.Cells("A1").LoadFromDataTable(dtSelling, True)
End If
Dim filename As String = "FullExtract_" & Now.Year.ToString & Now.Month.ToString & Now.Day.ToString & ".xlsx"
Dim fileBytes As [Byte]() = pck.GetAsByteArray()
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.ClearContent()
HttpContext.Current.Response.ClearHeaders()
HttpContext.Current.Response.Cookies.Clear()
HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.[Private])
HttpContext.Current.Response.CacheControl = "private"
HttpContext.Current.Response.Charset = System.Text.UTF8Encoding.UTF8.WebName
HttpContext.Current.Response.ContentEncoding = System.Text.UTF8Encoding.UTF8
HttpContext.Current.Response.AppendHeader("Content-Length", fileBytes.Length.ToString())
HttpContext.Current.Response.AppendHeader("Pragma", "cache")
HttpContext.Current.Response.AppendHeader("Expires", "60")
HttpContext.Current.Response.AddHeader("content-disposition", "attachment; filename=" & filename)
HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"
HttpContext.Current.Response.BinaryWrite(fileBytes)
HttpContext.Current.Response.[End]()
我假设这个字符串来自数据表,你可以用这个方法替换它:
public static void Replace_x00D_(DataTable data)
{
List<DataColumn> stringColumns = new List<DataColumn>();
foreach (DataColumn dc in data.Columns)
{
if (dc.DataType == typeof(string))
stringColumns.Add(dc);
}
foreach (DataRow rw in data.Rows)
{
foreach (DataColumn dc in stringColumns)
rw.Field<string>(dc).Replace("_x00D_", "");
}
}