Не могу прочитать из моего файла Excel, используя C # - PullRequest
2 голосов
/ 20 июля 2010

У меня есть файл Excel 2007 «my.xlsx» и лист с именем «States», и у меня есть следующий код

 using (OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\my.xlsx;Extended Properties='Excel 12.0 Xml;HDR=NO'"))
        {
            OleDbCommand cmd = new OleDbCommand("select * from [States]", con);

            con.Open();
            OleDbDataReader reader = cmd.ExecuteReader();
            while(reader.Read())
                Console.WriteLine(reader[0]);
        }

Он продолжает выдавать исключение, говорящее «ядро базы данных Microsoft Office Accessне найти объект «Состояния». Убедитесь, что объект существует и что вы правильно написали его имя и путь. ».

Может кто-нибудь помочь понять, что не так с моим кодом, пожалуйста?

Ответы [ 3 ]

4 голосов
/ 20 июля 2010

Я знаю, что это может быть не совсем то, что вы хотите услышать, но вы в длинном ряду людей, которые изо всех сил пытались читать файлы Excel, используя oledb ...

Мне повезло больше, используя библиотеки, такие как NPOI, для чтения файлов Excel из C #:

http://npoi.codeplex.com/ (рекомендуется)

http://nexcel.sourceforge.net/

http://sourceforge.net/projects/koogra/

2 голосов
/ 20 июля 2010

Я думаю, что вам нужно открыть соединение перед созданием команды - не уверен, что это важно ...

Затем добавьте $ в конце имени листа:

OleDbCommand cmd = new OleDbCommand("select * from [States$]", con);

В основном [Name] относится к именованному диапазону, тогда как [Name$] относится к листу.

Для получения дополнительной информации см. Этот KB: http://support.microsoft.com/kb/316934

1 голос
/ 20 июля 2010

Я только что заработал, посетив эту страницу

http://www.davidhayden.com/blog/dave/archive/2006/05/26/2973.aspx

Для моего требования мне нужно только прочитать файл Excel. Большинство решений, которые я искал, показывают, что вы используете какую-то библиотеку, что для меня излишне. Я действительно искал кого-то, чтобы просто опубликовать фрагмент кода о том, как читать файл, но я только нашел это на странице, с которой я поместил ссылку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...