Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема чтения excel / 19 сообщений из 19, страница 1 из 1
22.12.2012, 16:31
    #38089160
VIT2708
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Подскажите как решить проблему чтения данных из excel. Проблема заключается в том что у меня ошибка выпадает при чтении ячейки с датами

Открывать excel и в ручную форматировать ячейки тоже проблемно так как это всегда нужно будет делать в ручную что накладно

Вот например есть код

Код: c#
1.
2.
3.
4.
5.
OleDbConnection theConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=E:\\ReadExcel\\Sample1.xls;");
            theConnection.Open();
            OleDbDataAdapter theDataAdapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", theConnection);
            
            theDataAdapter.Fill(dt);




Пример excel

Поле1 (формат данных текст) | Поле2 (формат данных текст) | Поле3 (формат данных дата)

Так вот при чтении поля с датой вылетает exception подскажите как можна решить эту проблему?

Спасибо.
...
Рейтинг: 0 / 0
24.12.2012, 07:36
    #38090156
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
VIT2708,

Microsoft.Jet.OLEDB.4.0 использовали динозавры, поищите код посвежее
...
Рейтинг: 0 / 0
24.12.2012, 09:44
    #38090233
dzone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
судя по вашему тексту, тот кусок кода который вы показали ошибку не дает, а ошибка при считывании конкретной ячейки из datatable ???
...
Рейтинг: 0 / 0
24.12.2012, 11:13
    #38090322
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Я в свое время пытался использовать несколько видов драйверов, но не всегда это работало. Где то ограничения на размер, где то неверно определялись данные.

В итоге плюнул и сделал через раннее связывание в Excel. Поставил двухмесячную триалку 2010 для отладки. Протестил на версиях с 2003 по 2010. Везде работало.
...
Рейтинг: 0 / 0
25.12.2012, 16:00
    #38092147
Muhiddin Hayrullaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
Excel.Range range ;

int rCnt = 0;
int cCnt = 0;

xlApp = new Excel.ApplicationClass();
xlWorkBook = xlApp.Workbooks.Open(fayl, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

range = xlWorkSheet.UsedRange;

for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++)
{
for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
{
MessageBox.Show((string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2.ToString());
}
}

xlWorkBook.Close(true, null, null);
xlApp.Quit();

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
...
Рейтинг: 0 / 0
25.12.2012, 16:03
    #38092153
Muhiddin Hayrullaev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
using Excel = Microsoft.Office.Interop.Excel;

Excel.Application xlApp ;
Excel.Workbook xlWorkBook ;
Excel.Worksheet xlWorkSheet ;
Excel.Range range ;

int rCnt = 0;
int cCnt = 0;

xlApp = new Excel.ApplicationClass();
String file = (string)Registry.GetValue(CFG.keyName(), "FILE_NAME", "NULL");
xlWorkBook = xlApp.Workbooks.Open(file, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

range = xlWorkSheet.UsedRange;

for (rCnt = 1; rCnt <= range.Rows.Count; rCnt++)
{
for (cCnt = 1; cCnt <= range.Columns.Count; cCnt++)
{
MessageBox.Show((string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2.ToString());
}
}

xlWorkBook.Close(true, null, null);
xlApp.Quit();

releaseObject(xlWorkSheet);
releaseObject(xlWorkBook);
releaseObject(xlApp);
...
Рейтинг: 0 / 0
25.12.2012, 16:04
    #38092157
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Muhiddin HayrullaevMicrosoft.Office.Interop.Excel;
На помойку.
...
Рейтинг: 0 / 0
25.12.2012, 16:15
    #38092190
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУНа помойку.
Что советуете, МСУ? Позднее связывание, драйвера для работы а-ля БД или что-то иное?
Вопрос не с подколкой, не праздный.
...
Рейтинг: 0 / 0
25.12.2012, 16:52
    #38092270
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Arm79МСУНа помойку.
Что советуете, МСУ? Позднее связывание, драйвера для работы а-ля БД или что-то иное?
Вопрос не с подколкой, не праздный.
1. Для 99% задач - генераторы отчетов и только генераторы отчетов (MS Reporting Services, CR, FR и т.д.)
2. Для 1% задач (для особо замороченных отчетов, которые практически нереально сделать в генераторе) - Open XML SDK 2.0 for Microsoft Office (или готовые врапперы под него)

Главное из двух пунктов - не требует наличия офиса. А на сервере (для серверных решения) офис - это беспощадное зло, от которого даже MS открещивается. Офис - чисто клиентская приблуда.
...
Рейтинг: 0 / 0
25.12.2012, 17:00
    #38092285
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУ,

а, немного не то. Если нужно считать данные из файла Excel, а не вывести данные, то генератор отчетов не поможет
...
Рейтинг: 0 / 0
25.12.2012, 17:05
    #38092292
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Arm79МСУ, а, немного не то. Если нужно считать данные из файла Excel, а не вывести данные, то генератор отчетов не поможет
А, я имел ввиду генератор - для создания. Для чтения - AccessDatabaseEngine , CSV , OleDb , XML XSLT чтение, и самое главное - всё тот же Open XML SDK 2.0 for Microsoft Office.
...
Рейтинг: 0 / 0
25.12.2012, 17:11
    #38092306
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУА, я имел ввиду генератор - для создания. Для чтения - AccessDatabaseEngine , CSV , OleDb , XML XSLT чтение, и самое главное - всё тот же Open XML SDK 2.0 for Microsoft Office.

OleDB, ODBC у меня не работали как нужно, хотя я день просидел, пробуя различные настройки.
CSV, XML/XSLT не катят, ибо файлы у меня именно в форматах xls, xlsx

Пойду читать про AccessDatabaseEngine и Open XML SDK 2.0 for Microsoft Office. Из своего опыта добавишь, имеет значение для этих вариантов версия Excel?

Работа с Interop выдала четко все, что нужно, и без донастроек пахала на машинах с Office 2003-2010
...
Рейтинг: 0 / 0
25.12.2012, 17:16
    #38092317
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Arm79Из своего опыта добавишь, имеет значение для этих вариантов версия Excel?
Да вроде тоже все версии держит, включая даже 97. Нужно гуглить или пробовать.
Open XML SDK 2.0
Open XML SDK 2.5 CTP (для информации, скоро будет полноценный)
...
Рейтинг: 0 / 0
25.12.2012, 17:19
    #38092321
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Arm79, юзай врапперы: на голом опенофисе сложновато ездить

http://excelpackage.codeplex.com/
http://simpleooxml.codeplex.com/
http://extrememl.codeplex.com/
...
Рейтинг: 0 / 0
25.12.2012, 17:22
    #38092330
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУArm79Из своего опыта добавишь, имеет значение для этих вариантов версия Excel?
Да вроде тоже все версии держит, включая даже 97. Нужно гуглить или пробовать.
Open XML SDK 2.0
Open XML SDK 2.5 CTP (для информации, скоро будет полноценный)

Чёт смущает это. OpenXML - это же формат. Чтобы с ним работать, нужно предварительно сохранить документ в OpenXml. Как же тогда 97 версия работает?
...
Рейтинг: 0 / 0
25.12.2012, 17:27
    #38092341
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Arm79Чёт смущает это. OpenXML - это же формат. Чтобы с ним работать, нужно предварительно сохранить документ в OpenXml. Как же тогда 97 версия работает?
Через OOXML, который не входит в дефолтный пакет офиса и ставится отдельно через Microsoft Office Compatibility Pack.
А так да, если юзать чистый 2.0, то оно идет от 2007 и старше.
...
Рейтинг: 0 / 0
25.12.2012, 17:34
    #38092357
Arm79
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУ,

Спасиб
...
Рейтинг: 0 / 0
26.12.2012, 06:45
    #38092834
Roman Mejtes
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
МСУMuhiddin HayrullaevMicrosoft.Office.Interop.Excel;
На помойку.чем вас не устраивает Interop? просто интересно, сам я не любитель читать из офисных файлов )
...
Рейтинг: 0 / 0
26.12.2012, 08:16
    #38092851
МСУ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема чтения excel
Roman MejtesМСУпропущено...

На помойку.чем вас не устраивает Interop? просто интересно, сам я не любитель читать из офисных файлов )
Наличие офиса.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Проблема чтения excel / 19 сообщений из 19, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]