Ketika saya mencoba untuk mengakses spreadsheet Excel menggunakan kode berikut ini, saya mendapatkan kesalahan "Perpustakaan tidak terdaftar" ketika mendefinisikan objek buku kerja wrkbuk menggunakan C # dari Visual Studio 2012 dengan Office 2007 (ver 12) diinstal
Microsoft.Office.Interop.Excel.Application excapp = new Microsoft.Office.Interop.Excel.Application();
string bookname = @"C:\Users\Public\Documents\RECRUITMENT & SELECTION\MOVEMENTS\MOVEMENTS\Miscellaneous Documents\VacanciesREAL.xls";
Workbook wrkbuk = excapp.Workbooks.Open(bookname);
Worksheet wrksht = new Worksheet();
Detail kesalahannya
System.InvalidCastException tidak ditangani
HResult = -2147467262
Message = Tidak dapat mentransmisikan objek COM bertipe 'Microsoft.Office.Interop.Excel.ApplicationClass' ke tipe antarmuka 'Microsoft.Office.Interop.Excel._Application'. Operasi ini gagal karena panggilan QueryInterface pada komponen COM untuk antarmuka dengan IID '{000208D5-0000-0000-C000-000000000046}' gagal karena kesalahan berikut: Perpustakaan tidak terdaftar. (Pengecualian dari HRESULT: 0x8002801D (TYPE_E_LIBNOTREGISTERED)).
Sumber = mscorlib
Saya telah membuat referensi ke Microsoft.Office.Interop.Excel.dll di Kantor 14 Interop Majelis Utama yang datang dengan VS 2012 dan juga untuk versi Office 12 dari dll dan tidak memperbaiki masalah. Saya sudah mencoba mendaftarkan dll dengan regasm tetapi ini tidak membantu.
Saya dapat membuat wrksht lembar kerja pada baris berikut OK dengan Office 14 dan Office 12 dll sehingga masalah tampaknya hanya mempengaruhi definisi buku kerja.
17 Desember 2013
Mencoba menginstal ulang Office 2007 tidak berhasil tetapi menemukan solusi ini, yang bekerja. Itu di
http://social.msdn.microsoft.com/Forums/vstudio/en-US/d3f92da7-96d3-404b-89d0-d236800ceae5/vs-2012-rc-and-visual-studio-tools-for-office?forum= vsto
Masalah adalah kode dari beberapa versi Office - Saya memiliki kode dari Office 14, mungkin berasal dari pemasangan VS 2012
Saya menduga bahwa VS 2012 RC telah menginstal tipe Office 2013
perpustakaan, dan sekarang ada versi duplikat yang terdaftar. saya mendapatkan
pesan kesalahan khusus ('tidak dapat mentransmisi
_Application '....' TYPE_E_LIBNOTREGISTERED ') setelah penginstalan yang berantakan, lalu menginstal ulang versi Office yang lebih lama. Saya memecahkannya dengan
mengikuti saran dari thread forum lain di sini yang saya sedih
tidak dapat menemukan ... pada dasarnya saya mencari registri untuk CLSID di
pesan kesalahan, jadi, {00020970-0000-0000-C000-000000000046}. Nya
kunci registri berisi dua kunci, salah satunya disebut 'TypeLib',
yang pada gilirannya berisi CLSID lain untuk perpustakaan jenis. Lalu saya
mencari registri, mulai dari awal lagi, untuk itu
CLSID kedua, yang membawa saya ke perpustakaan jenis interop yang relevan. Saya t
memiliki dua entri .... 8.3 dan 8.4, jumlah yang lebih besar sesuai dengan
versi Office yang lebih baru .... yang saya hapus ... dan segera bisa
untuk menjalankan program saya.
Saya memiliki masalah yang sama persis. Begini cara saya memperbaikinya:
Pergi ke HKEY_CLASSES_ROOT \ TypeLib \ dan cari "Office.Interop.Excel".
Saya menemukan HKEY_CLASSES_ROOT \ TypeLib \ (guid) \ 1.8 tetapi simpul anak kosong! Saya menghapusnya karena Office 15 tidak diinstal pada mesin itu, dan hey presto - itu berhasil.
Entah penginstal proyek VSTO kami, atau penginstal khusus kami sendiri harus menempatkan folder 1.8 di sana.
Saya menemukan solusinya di sini:
Kesalahan saat mengakses komponen COM
Saya akan mengkonfirmasi jawaban @stuzor pada dua mesin yang saya temui.
Latar Belakang:
Windows7 64 bit
Office 2010 (32bit)
Lync 2013
HKEY_CLASSES_ROOT \ TypeLib \, mencari "Office.Interop.Excel". Menemukan folder "1.8" yang hampir tidak ada. Setelah penghapusan, fungsi di aplikasi VB.net lama mulai bekerja dengan segera.
Saya memiliki masalah yang persis sama. Jika Anda telah menginstal versi baru Office dan karena alasan tertentu Anda harus menginstal versi yang lebih lama tanpa menghapus yang baru (Untuk kasus saya, saya hanya perlu menginstal Office XP Photo Editor) dan ini menyebabkan masalah.
Setelah menghabiskan 3 jam ke atas dan ke bawah, cara terbaik adalah memperbaiki versi Office yang baru dan semuanya kembali normal seperti seharusnya.
Semoga info ini membantu asalkan Anda memiliki skenario yang sama atau serupa.
Sesuatu yang belum disebutkan di sini tetapi yang mungkin berguna adalah bahwa subkunci 1.XX dapat menyebabkan masalah juga. Sebagai contoh:
Dibawah Komputer \ HKEY_CLASSES_ROOT \ TypeLib {00020813-0000-0000-C000-000000000046} Saya punya subkunci 1.9. Ini pada gilirannya memiliki subkunci 0(atau seharusnya). Sekarang di bawah ini, ada dua subkunci - Win32 dan Win64. Akibatnya, Visual Studio tidak dapat menyelesaikan lokasi Microsoft.Office.Interop.Excel.dll - itu membaca dua subkunci di mana ia hanya bisa membaca satu. Menghapus subkunci Win32 memperbaiki masalah saya sepenuhnya. Harap dicatat bahwa ini dilakukan setelah selesai menginstal ulang VS 2017 & Office 365 Pro Plus. Semoga ini bisa membantu seseorang.
Hack registry yang dijelaskan di atas memperbaiki masalah yang sama untuk saya. Satu-satunya perbedaan adalah saya memiliki 1.9
dan entri 1.7. Saya menghapus kunci 1.9 dan masalah saya diperbaiki.
Info lain:
OS: Windows 10
Visual Studio Professional 2015
C # Aplikasi Windows Form
Ini ada di laptop kerja saya. Kami telah menginstal Office 2010 di setiap workstation.
Beberapa hal lain yang saya coba yang TIDAK BEKERJA adalah sebagai berikut:
Memperbaiki MS OFFICE
Menginstal ulang MS OFFICE
Mengunduh Microsoft Office 2010: Majelis Interop Primer dari Microsoft.
Saya juga memiliki beberapa versi Microsoft.Office.Interop.Excel.dll di laptop saya. Menghapus versi sebelumnya tidak memperbaiki masalah.
Senang saya pergi ke STACKOVERFLOW.COM karena tempat ini ROCKS !!!!!!
Kami memiliki masalah yang sama.
Pengaturan kami seperti ini:
Office 2010: Word dan Excel
tapi
Office 2013: Outlook
Kami menjalankan program instalasi untuk Office 2010 dan pilih opsi perbaikan.
Setelah itu, semua kunci yang salah dalam registri untuk Word dan Excel dihapus dan masalah terpecahkan.