Значение ячейки Excel становится DBNull при чтении с помощью OLE

#c# #.net #excel #ole

#c# #.net #excel #ole

Вопрос:

У меня есть лист Excel, который я читаю. Один из столбцов содержит названия отделов, например «$ .30 stuff».

Обратите внимание, что значение начинается со знака доллара. Это проблема, поскольку все эти значения последовательно считываются в as DBNull .

В моей строке подключения я установил

 ...;Extended Properties="Excel 8.0;HDR=YES;IMEX=1;ImportMixedTypes=Text;
 

Итак, насколько я понимаю IMEX=1 , значения должны считываться как текст.

Когда я меняю имя на чистый текст без специальных символов Excel, код работает.

Но есть ли способ считывать значения с ведущим знаком доллара?

Комментарии:

1. Я не собираюсь публиковать это как ответ, потому что это выстрел в темноте, но можете ли вы избежать $ с помощью a $ с помощью a replace() ?

2. К сожалению, это не помогло. Я удалил $ и отформатировал весь столбец как «Общий» (без форматирования), что на данный момент является моим «взломом».

3. Ах, орехи. У меня ничего нет. Удачи! Извините! … Одинарная кавычка ' ?

4. Смотрю с 20 минут, и, как всегда, excel OLE сводит меня с ума. По крайней мере, вы не можете использовать $ в источнике имен листов -> здесь . Было бы ужасно, если бы это было то же самое для ячеек, но я думаю, что это возможно.