Excel ile çalışıyorsanız ve bu mesajı "Exception from hresult: 0x80028018 (TYPE_E_INVDATAREAD))" alıyorsanız muhtemelen Türkçe dışındaki bir dilde excel kullanıyor olmalısınız.
old format or invalid type library. Exception from hresult: 0x80028018 (TYPE_E_INVDATAREAD))
Eski biçim veya geçerli kitaplık türü. Exception from hresult: 0x80028018 (TYPE_E_INVDATAREAD))
Excel 'i kapatmadan "CurrentCulture" değiştirirsek sorun çıkmayacaktır. Başlangıçta eskiCI olarak saklayıp yazma işleminin sonunda CurrentCulture = eskiCI; değiştirisek yazma işlemi sırasında hata vermeyecektir. Yanlız yeni sürümde desteklenen bazı özellikleri mesela v12 de bulunan özellikleri v11 denemeye kalkarsanız yine hata ile karşılaşırsınız.
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection;
using System.Runtime.InteropServices;
Excel.Application excel;
Excel.Workbook workbook;
Excel.Worksheet workSheet;
excel = new Excel.Application();
System.Globalization.CultureInfo eskiCI = System.Threading.Thread.CurrentThread.CurrentCulture;
System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");
excel.Visible = true;
System.Threading.Thread.CurrentThread.CurrentCulture = eskiCI;
excel = null;
workbook = null;
workSheet = null;
GC.Collect();
2 yorum:
Bende bunu versiondan kaynaklanıyor zannediyordum. office 2010 en de çalışmayınca dil aklıma hiç gelmemişti. Çok güncel ve kaliteli bir blog. Teşekkürler.
Faydalı olabildiğime sevindim. Teşekkürler.
Yorum Gönder