coolNish Ответов: 1

Внешняя таблица C# oledbconnection не находится в ожидаемом формате, где XLSX содержит изображение


I have an excel file where it contains an image in the header, I don't care about that image even if it has to be removed. 

I get the following error message while making the connection to the file which contains the image.

    conn.Open();

**External table is not in the expected format**

Whereas if I remove the image from the same excel, everything works fine.

I am looking for a solution to the same, if solution suggests removing the image from excel using C# then it should not be referring to any third party DLL, neither I can have Microsoft office on the server.


Is there any possibility to remove image from excel without OleDb, without office being installed or without using any third party dll ?

Thanks in advance.


Что я уже пробовал:

Я пробовал использовать сторонние библиотеки, которые отклоняются клиентом, MS office не будет предоставляться на сервере, и OleDb не может установить соединение с файлом, содержащим фигуры.

Richard MacCutchan

Я просто попытался открыть файл XLSX с изображением на листе, и он отлично работает. Вам нужно предоставить более подробную информацию.

1 Ответов

Рейтинг:
0

Maciej Los

Просто игнорируйте заголовки. Все, что вам нужно сделать, это изменить строку подключения с:

strig sConn= string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0}='Excel 12.0 Xml;HDR=YES;';", sFullFileName);

к:
strig sConn= string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 12.0 Xml;HDR=NO;';", sFullFileName);


Для получения более подробной информации, пожалуйста, смотрите: Строки подключения Excel - ConnectionStrings.com[^]


Richard MacCutchan

У меня в коде было "HDR=YES", и он загружался нормально, а изображение просто игнорировалось.

Maciej Los

Кажется, это зависит от имиджа... ;)

Richard MacCutchan

Как это часто бывает, недостаточно информации.

Maciej Los

О, да!