• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Problem z C#, błąd - hresult exception: 0x80040154 (regdb_e_classnotreg)).

Object Storage Arubacloud
0 głosów
268 wizyt
pytanie zadane 20 lutego 2023 w C# przez MarekPrzywarek Nowicjusz (220 p.)

Witam. Kod bez błędów, no kiedy zaczynam kompilować to wyskakuje błąd.

Jak rozwiązać ten problem?smiley

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Reflection;
using ExcelObj = Microsoft.Office.Interop.Excel;


namespace sourceX
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            OpenExcelTable(dataGridView1);
        }
        public static void OpenExcelTable(DataGridView TableInf)
        {
            OpenFileDialog odf = new OpenFileDialog();
            odf.DefaultExt = "*xls,*.xlsx";
            odf.Filter = "Excel Sheet (*.xlsx)|*.xlsx";
            odf.Title = "Wybierz File";

            ExcelObj.Application app = new ExcelObj.Application();
            ExcelObj.Workbook workbook;
            ExcelObj.Worksheet NwSheet;
            ExcelObj.Range ShtRange;

            DataTable dt = new DataTable();
            if (odf.ShowDialog() == DialogResult.OK)
            {
                

                workbook = app.Workbooks.Open(odf.FileName, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value, Missing.Value, Missing.Value, Missing.Value,
                Missing.Value);

                NwSheet = (ExcelObj.Worksheet)workbook.Sheets.get_Item(1);
                ShtRange = NwSheet.UsedRange;
                for(int Cnum = 1; Cnum <= ShtRange.Columns.Count; Cnum++)
                {
                    dt.Columns.Add(new DataColumn((ShtRange.Cells[1, Cnum] as ExcelObj.Range).Value2.ToString()));
                }
                dt.AcceptChanges();

                String[] columnNames = new String[dt.Columns.Count];
                for(int i = 0; i < dt.Columns.Count; i++)
                {
                    columnNames[0] = dt.Columns[i].ColumnName;
                }
                for(int Rnum = 2; Rnum <= ShtRange.Rows.Count; Rnum++)
                {
                    DataRow dr = dt.NewRow();
                    for(int Cnum = 1; Cnum <= ShtRange.Columns.Count; Cnum++) 
                    {
                        if ((ShtRange.Cells[Rnum, Cnum] as ExcelObj.Range).Value2 != null)
                        {
                            dr[Cnum - 1] = (ShtRange.Cells[Rnum, Cnum] as ExcelObj.Range).Value.ToString();
                        }
                    }
                    dt.Rows.Add(dr);
                    dt.AcceptChanges();
                }
                TableInf.DataSource= dt;
                app.Quit();
            }
            app.Quit();
        }
    }
}

 

komentarz 21 lutego 2023 przez areklipno Stary wyjadacz (11,930 p.)
a Excel na komputerze działa poprawnie?
komentarz 21 lutego 2023 przez MarekPrzywarek Nowicjusz (220 p.)
Tak
komentarz 21 lutego 2023 przez areklipno Stary wyjadacz (11,930 p.)
A zainstalowany przez Ciebie Excel jest 32 czy 64 bit? I czy Twój program jest w tej samej architekturze?

Bo taki błąd to jakby Excel nie był zainstalowany albo było coś nie tak z jego uruchomieniem....
komentarz 21 lutego 2023 przez MarekPrzywarek Nowicjusz (220 p.)
Zrozumiałem, będa coś robił.. Dzięki za pomoc!

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
2 odpowiedzi 901 wizyt
0 głosów
1 odpowiedź 319 wizyt
pytanie zadane 22 stycznia 2018 w C# przez lukaszvip166 Początkujący (300 p.)
0 głosów
2 odpowiedzi 295 wizyt
pytanie zadane 18 grudnia 2016 w C# przez mo290103 Obywatel (1,860 p.)

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...