2015年4月26日 星期日

rdlc 匯出excel,不合法的 xml 字元

rdlc或rdl,在匯出excel(xlsx)後,開啟execl檔,出現『我們發現XXX.xlsx的部份內容有問題。您要我們盡可能嘗試復原嗎?如果您信任此活頁簿,請按一下【是】』。

接著點選【是】 後,就出現以下錯誤:

已取代的部分: /xl/worksheets/sheet1.xml 部分具有 XML 錯誤。  不合法的 xml 字元。 行 17,欄 441033。

測試後,原來有一個欄位的內容造成匯出的錯誤。但不解的是WHY??

這個欄位的內容如下,看起來似乎很正常,但把他COPY起來貼到記事本後,會發現設備前多了一個看似空白的空格。

脈衝電場(PEF)殺菌 設備

解出來是0x0B,在XML上這是個不合法的字元。

所以先把這個看似空白的字元刪除,匯出後開啟EXCEL就OK了。

4 則留言:

  1. MemoryStream ms = new MemoryStream();
    ......

    workbook.Write(ms);
    workbook = null;
    ms.Close();
    ms.Dispose();
    HttpContext.Current.Response.Buffer = true;
    HttpContext.Current.Response.Clear();
    HttpContext.Current.Response.ContentType = "application/octet-stream";
    HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=\"" + HttpUtility.UrlEncode("Name", System.Text.Encoding.UTF8) + ".xlsx\"");
    HttpContext.Current.Response.BinaryWrite(ms.ToArray());
    HttpContext.Current.Response.Flush();
    HttpContext.Current.Response.End();

    回覆刪除
  2. 您好,請問是如何發現的?我也遇到這問題,可是資料太多,無法一一檢查

    回覆刪除

pdf.js 無法顯示部份字

有個檔案在pdf viewer套件中無法顯示內容,但下載檔案後使用工具又可以正常顯示。 本來以為是套件版本太舊的原因,於是去下載pdf viewer套件 https://github.com/mozilla/pdf.js 更新後還是一樣。 覺得應是字型缺漏的問題,於是用PDF-X...