Форум программистов, компьютерный форум, киберфорум
Наши страницы

Visual Basic

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 25, средняя оценка - 4.92
evgenybe
#1

Проблема считывания числового поля из Excel - VB

02.04.2009, 14:26. Просмотров 3051. Ответов 5
Метки нет (Все метки)

У пользователя есть лист Excel (2003). В нем около 4000 строк и порялка 200 колонок.
В некоторых ячейках, в которых находятся числа в правом верхнем углу появляются зеленые маленькие треугольнички, а рядом примечание, что неверный формат числа.
Когда я пытаюсь считать информацию в DataTable, то в полях, соответствующих таким ячейкам вместо данных System.DbNull
Когда вручную исправляю такие проблемные ячейки (или группы ячеек при помощи макро) в числовом формате - проблема исчезает, но для пользователя это неприемлемо (поиск вручную занимает много времени, и не всегда пользователь может все проблемы найти).

Нельзя ли проблему решить программно в VB?
Спасибо заранее.
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.04.2009, 14:26
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Проблема считывания числового поля из Excel (VB):

Размер числового поля в dBASE и ошибка: Automation error (Error 440) - VB
Доброе время суток! Помогите, пожалуйста, задать формат числового поля Field3 в таблице dBASE. Если написать Field3 Numeric(19,2), то...

Проблема с TreeView в Excel - VB
Помогите разобраться – где я совершаю ошибку: открыл приложение Excel/сохранил документ как “Книга1”/ на панели “Формы” нажал кнопку...

Excel макрос и VB 6 - проблема вызова - VB
Доброго времени суток, господа! Возникла небольшая проблема (я надеюсь для вас - для меня довольно приличная - всю голову об проги и...

Проблема с Excel dialogsheet controls taborder - VB
Вот столкнулся с такой проблемой: есть диалогшит в екселе, на нем расположена кучка контролов ака текстбокс, дропдаун, кнопка. И вот не...

Проблема с загрузкой данных из Excel посредством ADO - VB
В Excele есть столбец следующего вида: SKV (это название ) 10 12 13R 15B 18 Так вот, числа загружаются...

1C 8.x Запрос, сравнение поля код и числового поля из разных справочников - 1С
Всем доброго времени суток. Возникла проблема, при создании запроса. Есть 2 справочника : в 1-ом хранится информация об автомобилях (код,...

5
NickStaves
0 / 0 / 0
Регистрация: 15.12.2007
Сообщений: 381
02.04.2009, 15:44 #2
DataTable?

А код не покажите?
0
evgenybe
02.04.2009, 20:00 #3
<FONT size=4><FONT size=4>
<FONT color=#0000ff size=4>Dim<FONT size=4> CNN <FONT color=#0000ff size=4>As<FONT size=4> <FONT color=#0000ff size=4>New<FONT size=4> OleDb.OleDbConnection</P><FONT color=#0000ff size=4><FONT color=#0000ff size=4><FONT size=4>
<FONT color=#0000ff size=4>Dim<FONT size=4> dt <FONT color=#0000ff size=4>As<FONT size=4> <FONT color=#0000ff size=4>New<FONT size=4> System.Data.DataTable</P><FONT size=4>
<FONT color=#0000ff size=4>Dim<FONT size=4> da <FONT color=#0000ff size=4>As<FONT size=4> OleDbDataAdapter
Dim<FONT size=4> sSQL <FONT color=#0000ff size=4>As<FONT size=4> <FONT color=#0000ff size=4>String<FONT size=4> = <FONT color=#800000 size=4>"select * FROM ["<FONT size=4> & sListName & <FONT color=#800000 size=4>"$A5:HR4000]"</P><FONT size=4>
CNN.ConnectionString = strCNN
<FONT color=#008000 size=4>'CNN.Open()</P><FONT size=4>
da = <FONT color=#0000ff size=4>New<FONT size=4> OleDbDataAdapter(sSQL, CNN)
<FONT color=#0000ff size=4>Try</P><FONT size=4>
System.Windows.Forms.Application.DoEvents()
System.Windows.Forms.Application.DoEvents()</P><FONT size=4>
da.Fill(dt)
...</P>
NickStaves
0 / 0 / 0
Регистрация: 15.12.2007
Сообщений: 381
09.04.2009, 16:51 #4
Вообщето это VB.NET но не суть.



Попробовал - у меня корректно считываются, но тип колонки - string



А какое форматирование ячейки и значение в ячейке с ошибкой? А то не могу воспроизвести.
0
evgenybe
12.04.2009, 16:34 #5
У меня тип колонки - text.
Число в нем, например 1111
NickStaves
0 / 0 / 0
Регистрация: 15.12.2007
Сообщений: 381
13.04.2009, 14:54 #6
Попробовал. Используя Ваш код - все считывается корректно.

Excel 2002 (10.2710.2625)

Connection string взял с http://connectionstrings.com/excel



Если все-же есть проблема, то можно подключить Microsoft Excel XX Object Library ActiveX и с помощью него либо считать данные либо пофиксить ошибки формата.
0
13.04.2009, 14:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.04.2009, 14:54
Привет! Вот еще темы с ответами:

Проблема считывания текста с клавиатуры - Java SE
- Возникла проблема при написании одного, из классов целой программы. Часть должна сперва считывать текст, а затем его выводить на экран....

Проблема считывания файла в массив, а затем в StringGrid - C++ Builder
Проблема считывания файла в массив,а затем в StringGrid.Кто нибудь помогите. Вот код ...

Выборка числового поля - MS Access
Доброе утро, нужно провести выборку из таблицы, числовое поле если значение 0, нужно заменить пустотой. Поле не обязательно к заполнению....

MS Access Поиск по части числового поля - C++ Builder БД
Есть код на кнопке if (RadioButton5-&gt;Checked == true &amp;&amp; Edit1-&gt;Text!=&quot;&quot;) { ADOTable1-&gt;Filtered = false; ADOTable1-&gt;Filter =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru