2020-06-04
如果 SQL Server 資料庫用 ASP.NET 程式產生的 .ods 檔案,有些可以正常 Excel 開啟,有些無法用 Excel 開啟,而出現:
【Excel無法開啟檔案 'xxxxx.xlsx',因為檔案格式或副檔名無效,請確認檔案沒有損毀,且副檔名符合檔案的格式。】
或
【我們發現 'xxxxx.xlsx' 的部分內容有問題。您要我們儘可能嘗試復原嗎?如果您信任此活頁簿的來源,請按一下 [是]。】
可能是
- 匯出用的元件是較早期的,或使用不依靠元件的程式寫法,產生的Excel檔案其實不標準,或是早期的格式,早期Excel是可以開啟和運作;後來較新版 Excel 做了較嚴格的檢查,而出現警告,讓使用者自行判斷是否安全。
- 資料包含 .xlsx 檔案無法允許的字元 (一般是不可見字元),但是該字元在 C# 的 string 變數、SQL Server 的 nvarchar 欄位和 ASP.NET 網頁是允許使用的。
- 例如填寫者匯入檔案的資料使用 0x16 (SYN 同步用暫停) 或 0x08 (Backspace),可能是從某資料來源複製內容時,一併複製過來。
(完)
相關
C#去除字串中的不可見內容
ASCII - 維基百科,自由的百科全書
如何在 .NET 中使用字元編碼類別
中文字 unicode 範圍
整理 Unicode 經常會使用到的內碼區域並透過 Regex 自動比對文字
沒有留言:
張貼留言