Соединение Microsoft Jet oledb с Excel теряет формулы

У меня есть набор данных, и я записываю его значения в файл Excel с помощью поставщика Microsoft Jet 4.0 Oledb. Я хочу разместить гиперссылки в excel, для этого я пишу "= HYPERLINK (" http://www.abc.org/x.pdf ")" в DS, а затем напишите его в Excel. Но когда Excel открывается, он ставит префикс '(цитата / апостроф) перед формулой, и там он появляется как текст, а не ссылка. Можете ли вы помочь мне удалить эту цитату, чтобы в моем файле Excel были гиперссылки вместо текста?

Мне нужно использовать поставщика Microsoft Jet 4.0 (не компонент Excel), так как на клиентском компьютере может быть установлен или не установлен MS-Excel.


person Saubhagya    schedule 12.04.2010    source источник


Ответы (1)


Jet обеспечит интеграцию данных с Excel. Вы можете читать / писать данные. Ни формулы, ни форматирование, ни что-то еще.

Чтобы делать то, что вы хотите, вам нужно будет выводить отформатированные данные. Вы можете сделать это, сгенерировав HTML-файл и сообщив клиенту, что это Excel, который будет работать нормально, но имеет незначительные побочные эффекты. Лучшим вариантом было бы использовать настоящий двоичный модуль записи Excel. Здесь много вариантов:

Импорт и экспорт Excel - что такое лучшая библиотека?

person Samuel Neff    schedule 12.04.2010
comment
Я собирался задать, по сути, тот же вопрос (относительно вставленного 'перед всеми полями, независимо от их типа данных). Можно было бы подумать, что, поскольку архитектура Ole получает от меня информацию о типе сервера, когда я запускаю запросы Linq, она, по крайней мере, будет знать, что не следует менять тип int на строку? - person Reinderien; 01.04.2011
comment
@Reinderien, за мой многолетний опыт программирования в Excel, я обнаружил, что здравый смысл неприменим. - person Samuel Neff; 01.04.2011
comment
Я не согласен, вы можете включить формулу в свой запрос в качестве столбца в наборе записей ADO DB, а затем использовать CopyFromRecordset для вывода набора результатов на рабочий лист - person Our Man in Bananas; 26.06.2013
comment
@Philip, CopyFromRecordset - это функция Excel VBA. Его можно использовать при автоматизации Excel, но не при написании программы исключительно против движка Jet для чтения / записи файлов XLS. ОП специально сказал, что они хотят использовать свое приложение на компьютере, на котором может не быть установлен Excel, что требуется для автоматизации Excel и CopyFromRecordset - person Samuel Neff; 27.06.2013
comment
Ах, я неправильно понял, извини, что плохо :) - person Our Man in Bananas; 27.06.2013