簡體   English   中英

從數據表中刪除特殊字符

[英]Remove special character from DataTable

我有一個DataTable ,可使用以下代碼將其寫入Excel 我使用using ClosedXML.Excel將其導出到Excel

var worksheet = workbook.Worksheets.Add(dataTable, "Report");

Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
Response.AddHeader("content-disposition", "attachment;  filename="Report.xlsx");

using (MemoryStream MyMemoryStream = new MemoryStream())
            {
                workbook.SaveAs(MyMemoryStream);
                MyMemoryStream.WriteTo(Response.OutputStream);
                MyMemoryStream.Close();
            }

Response.Flush();
Response.End();

上面的代碼對特殊字符引發錯誤: 十六進制值0x1A''是無效字符。 我無法在此處復制特殊字符。 所以請您道歉

我看到下面的帖子在帖子C#十六進制值0x12中替換了特殊字符,是無效字符

static string ReplaceHexadecimalSymbols(string txt)
{
string r = "[\x00-\x08\x0B\x0C\x0E-\x1F\x26]";
return Regex.Replace(txt, r,"",RegexOptions.Compiled);
}

誰能指導我如何將DataTable值轉換為string ,然后再從String轉換回DataTable

還是請讓我知道是否還有其他方法可以解決這個special character問題?

如果您需要在更換無效的字符串值DataTable ,你可以做類似如下:

foreach (DataRow row in dt.Rows)
{
    for (int i = 0; i < dt.Columns.Count; i++)
    {
        if(dt.Columns[i].DataType == typeof(string))
            row[i] = ReplaceHexadecimalSymbols((string)row[i]);
    }
}

在將其添加到workbook之前執行此操作

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM