
我有一個由 SSRS 產生的 Excel 工作表,偶爾會出現奇怪的儲存格格式問題。
頂級行(A 列中的 1 行)以填滿顏色突出顯示,如下圖所示。有時,在這些行上,該行的 C 列中的儲存格會顯示白色填滿。
如果我右鍵單擊該單元格並選擇設定單元格格式...儘管顯示為白色,但它顯示了正確的圖案顏色。
如果我選擇單元格並使用立即視窗進行輸出ThemeColor
,或者Pattern
它們都返回-4142
不正確的值。
Debug.Print Selection.Interior.ThemeColor
現在,如果我設定單元格填充顏色,它不會改變任何內容,包括立即視窗測試的輸出。
如果我第二次設定單元格填滿顏色,它會發生變化並且一切都會按預期工作。
所以我有兩個問題...
- 該單元格發生了什麼,它甚至不會響應設定屬性(第一次嘗試)?是什麼在控制它的狀態?
- 它是從 SSRS 還是 Excel 啟動的?
這裡有一個文件連結託管在 NoFile.io
根據 @Schlebe 的建議,我將固定工作表與原始 xml 進行了比較。原始細胞和固定細胞之間的差異就是 s 值。
原來的:<c r="C125" s="5"/>
固定的:<c r="C125" s="4"/>
答案1
這似乎是一個錯誤。
嘗試將其發佈到https://social.msdn.microsoft.com/Forums/en-US/home?ppud=4
您當然必須提供更多解釋或提交您的 Excel 文件。
但是您的 SQL Server 版本是什麼?
您的 Excel 文件類型是什麼? xls 還是 xlsx ?
如果是 xlsx,您可以嘗試使用 7z 開啟 Excel 文件,並將原始文件與您已修正的文件進行比較。
要做到這一點
- 您提取資料夾中的每個元素
- 在帶有 XML 工具的 Notepad++ 下,您可以格式化所有 XML 檔案以將每個標籤拆分為一行
- 使用 WinMerge,您可以比較兩個資料夾中的每個檔案。
有可能StyleId改變了,不利於比較。因此,您可能必須第一次儲存檔案而不添加任何更改,並且必須比較 2 個已儲存的檔案。
通常,我會添加評論,但我有太多東西要寫,使用答案來正確格式化大消息會更容易:-)