из xlsx в xml средствами C#
От: grief89  
Дата: 24.10.12 11:03
Оценка:
Здравствуйте,

у меня есть файл xlsx, мне необходимо сохранить его в формат xml.
Библиотека Microsoft.Office.Interop.Excel не подходит, т.к. она требует установленного MsOffice.
Перерыла все форумы, много что можно сделать, но только не то что нужно.
С помощью OleDB не получилось, т.к. нужны не только данные, но и оформление.

Спасибо заранее!
Вера
xlsx xml spreadsheet excel c#
Re: Open XML SDK
От: Qbit86 Кипр
Дата: 24.10.12 11:06
Оценка:
Здравствуйте, grief89.

G>у меня есть файл xlsx, мне необходимо сохранить его в формат xml.


Open XML SDK
Автор: Qbit86
Дата: 30.05.12
.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Open XML SDK
От: grief89  
Дата: 24.10.12 11:34
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, grief89.


G>>у меня есть файл xlsx, мне необходимо сохранить его в формат xml.


Q>Open XML SDK
Автор: Qbit86
Дата: 30.05.12
.



В том то и беда, что Я не знаю как это сделать, Можете привести пример? я пыталась по документации, но у меня не получилось
Re[3]: Open XML SDK
От: Qbit86 Кипр
Дата: 24.10.12 11:44
Оценка:
Здравствуйте, grief89, Вы писали:

G>Можете привести пример? я пыталась по документации, но у меня не получилось


http://msdn.microsoft.com/en-us/library/office/gg278309.aspx
Глаза у меня добрые, но рубашка — смирительная!
Re[4]: Open XML SDK
От: grief89  
Дата: 24.10.12 12:09
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, grief89, Вы писали:


G>>Можете привести пример? я пыталась по документации, но у меня не получилось


Q>http://msdn.microsoft.com/en-us/library/office/gg278309.aspx


Спасибо большое, но

открываю свой документ SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(path, true);
и пытаюсь изменить его тип spreadsheetDocument.ChangeDocumentType(<тип>);
но из доступных только xlam, xltm, xlsx, xltx, xlsm, т.е. xml нету

помогите пожалуйста!
Re[5]: LMGTFU
От: Qbit86 Кипр
Дата: 24.10.12 12:18
Оценка:
Здравствуйте, grief89, Вы писали:

G>открываю свой документ SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(path, true);

G>и пытаюсь изменить его тип spreadsheetDocument.ChangeDocumentType(<тип>);
G>но из доступных только xlam, xltm, xlsx, xltx, xlsm, т.е. xml нету

Converting Back to Flat OPC XML from In-Memory Packages.
Глаза у меня добрые, но рубашка — смирительная!
Re[6]: LMGTFU
От: grief89  
Дата: 24.10.12 12:37
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, grief89, Вы писали:


G>>открываю свой документ SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(path, true);

G>>и пытаюсь изменить его тип spreadsheetDocument.ChangeDocumentType(<тип>);
G>>но из доступных только xlam, xltm, xlsx, xltx, xlsm, т.е. xml нету

Q>Converting Back to Flat OPC XML from In-Memory Packages.


еще раз спасибо, но непонятно как то, скачала исходник примера, там везде используется Interop.excel, что не подходит. Либо я не поняла в принципе
Разве нет относительно стандартного метода сохранения в xml?
Подскажите поподробнее пожалуйста
Re[7]: LMGTFU
От: Qbit86 Кипр
Дата: 24.10.12 12:52
Оценка:
Здравствуйте, grief89, Вы писали:

Q>>Converting Back to Flat OPC XML from In-Memory Packages.


G>еще раз спасибо, но непонятно как то, скачала исходник примера, там везде используется Interop.excel, что не подходит. Либо я не поняла в принципе


Есть древний убогий бинарный формат документов MS Office. Для работы с ним используются вырвиглазные COM-обёртки, интероп с установленным офисом и тому подобный гудрон. Все примеры использования этого API из интернетов непременно нужно выпилить, дабы они не смущали своим наличием неподготовленных обывателей. Interop.Excel необходимо забыть.

Много лет назад появился новый формат Open XML (добавился «x» к расширению документов). Если документ .docx или .xlsx переименовать в .zip, и распаковать, то видно, что новый формат документов Офиса — набор XML'ек. Для высокоуровневой манипуляции с этими XML'ками создан вразумительный, почти человеческий API — Open XML SDK.

Не надо использовать примеры с Interop.Excel. Надо использовать примеры с OpenXML SDK. Просто почитай в окрестностях ссылки, которую я привёл выше.
Глаза у меня добрые, но рубашка — смирительная!
Re[2]: Open XML SDK
От: Михаил Романов Удмуртия https://mihailromanov.wordpress.com/
Дата: 24.10.12 13:58
Оценка: 6 (1)
Здравствуйте, Qbit86, Вы писали:

Q>Open XML SDK
Автор: Qbit86
Дата: 30.05.12
.


Я бы все же предложил использовать более простую обертку над OpenXML (мне он особо понятным не кажется, хоть что тут делай).
Конекретно предлагаю вот это ClosedXML

Есть довольно простой, на мой взгляд пример, как достать данные из XLSX файла Finding and extracting the data

Ну и как уже сказали, это все только для xlsx-файлов. Если вам нужно читать даные из бинарных xls, то у вас есть варианты:


Вроде все.
Re[8]: LMGTFU
От: grief89  
Дата: 25.10.12 06:12
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Здравствуйте, grief89, Вы писали:


Q>>>Converting Back to Flat OPC XML from In-Memory Packages.


G>>еще раз спасибо, но непонятно как то, скачала исходник примера, там везде используется Interop.excel, что не подходит. Либо я не поняла в принципе


Q>Есть древний убогий бинарный формат документов MS Office. Для работы с ним используются вырвиглазные COM-обёртки, интероп с установленным офисом и тому подобный гудрон. Все примеры использования этого API из интернетов непременно нужно выпилить, дабы они не смущали своим наличием неподготовленных обывателей. Interop.Excel необходимо забыть.


Q>Много лет назад появился новый формат Open XML (добавился «x» к расширению документов). Если документ .docx или .xlsx переименовать в .zip, и распаковать, то видно, что новый формат документов Офиса — набор XML'ек. Для высокоуровневой манипуляции с этими XML'ками создан вразумительный, почти человеческий API — Open XML SDK.


Q>Не надо использовать примеры с Interop.Excel. Надо использовать примеры с OpenXML SDK. Просто почитай в окрестностях ссылки, которую я привёл выше.



Я просмотрела примеры с OpenXML. В них насколько я поняла сначала используется преобразование из форматов MsOffice в xml, а потом обратно. Но при попытке преобразования в xml,файл создался но не открывается в Office. Но тогда в чем проблема?
Re: из xlsx в xml средствами C#
От: matumba  
Дата: 25.10.12 08:20
Оценка:
Здравствуйте, grief89, Вы писали:

G>у меня есть файл xlsx, мне необходимо сохранить его в формат xml.

G>... нужны не только данные, но и оформление.

О каком "оформлении" может идти речь в XML? Это просто универсальный формат, в нём НЕТ "оформления". Пересмотрите свой вопрос или сформулируйте реальную задачу, а не потуги с конвертацией.
Re[2]: Оформление
От: Qbit86 Кипр
Дата: 25.10.12 08:27
Оценка:
Здравствуйте, matumba, Вы писали:

M>О каком "оформлении" может идти речь в XML? Это просто универсальный формат, в нём НЕТ "оформления". Пересмотрите свой вопрос или сформулируйте реальную задачу, а не потуги с конвертацией.


Я так понял, речь шла о создании корректного xlsx-файла, в котором OpenXML-части упакованы не в zip-архив (как по умолчанию), а в единый xml-файл (такой режим тоже поддерживается). Документ, конечно, сильно раздуется в размерах по сравнению с упакованной версией, но зато будет текстовым (удобно для хранения в системе контроля версий, например).
Глаза у меня добрые, но рубашка — смирительная!
Re[3]: Оформление
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 25.10.12 20:14
Оценка:
Здравствуйте, Qbit86, Вы писали:

Q>Я так понял, речь шла о создании корректного xlsx-файла, в котором OpenXML-части упакованы не в zip-архив (как по умолчанию), а в единый xml-файл


Скорее речь о преобразовании openxml в excel 2003 xml.
... << RSDN@Home 1.2.0 alpha 5 rev. 66 on Windows 8 6.2.9200.0>>
AVK Blog
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.