Връзката на 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 файлове. OP изрично каза, че искат да използват приложението си на компютър, който може да няма инсталиран Excel, което е необходимо за автоматизацията на Excel и CopyFromRecordset - person Samuel Neff; 27.06.2013
comment
А, не съм разбрал, съжалявам за грешката :) - person Our Man in Bananas; 27.06.2013