_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]()

_x00D_通过使用 EPPlus 库显示在 Excel 中

我假设这个字符串来自数据表,你可以用这个方法替换它:

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_", "");
  }
}