Pertanyaan Kelas tidak terdaftar kesalahan saat membuat buku kerja Excel di C #


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.


32
2017-12-05 10:29


asal


Jawaban:


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


28
2018-05-28 15:49



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.


6
2017-10-13 19:35



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.


6
2018-04-28 04:40



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.


2
2018-01-31 14:37



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 !!!!!!


1
2017-07-27 15:20



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.


0
2018-05-05 14:49