Как создавать файлы .odt с помощью C#.NET?
-
03-07-2019 - |
Вопрос
Примечание:Я нашел это "Создание документа Word в C#.NET", но это не то, чего я хочу.
Знаете ли вы, как создать .odt как создать файл из C # .NET?
Есть ли .NET-компонент или оболочка для OpenOffice.org библиотеки для этого?
Решение
Взгляните на AODL (см. http://odftoolkit.org/projects/odftoolkit/pages/AODL).
- полностью управляемый .NET 1.1 (поэтому он работает на MS.Net и Mono)
- поддержка текстовых документов и электронных таблиц
- создание, чтение, редактирование, сохранение документов
- ...
ПРАВКА каме:Новая ссылка AODL-Вики
Другие советы
Вы можете посетить сайт стандартов OASIS для получения информации о стандарт ODT. Из того, что я видел, они используют стандарт на основе XML и имеют XSD, доступный для стандарта документа, так что вы можете использовать его вместе со своим собственным кодом для создания файла документа в правильном формате.
Возможно, вас заинтересует OpenOffice, языковая привязка интерфейса командной строки UNO. . р>
Я нашел это вчера, когда искал способ создания электронных таблиц, похоже, создание файлов писателя очень похоже: http://www.suite101.com/content / creation-an-openoffice-calc-document-with-c-a124112 , не забудьте сначала установить Open Office SDK из Oracle.
К сожалению, я еще не нашел способ создать файл, не открывая его.
Код будет выглядеть так:
private XComponentContext oStrap = uno.util.Bootstrap.bootstrap();
XMultiServiceFactory oServMan = (XmultiServiceFactory) oStrap.getServiceManager();
XComponentLoader oDesk = (XComponentLoader) oServMan.createInstance("com.sun.star.frame.Desktop");
string url = @"private:factory/swriter";
PropertyValue[] propVals = new PropertyValue[0];
XComponent oDoc = oDesk.loadComponentFromURL(url, "_blank", 0, propVals);
string docText = "File Content\n\r";
((XTextDocument)oDoc).getText().setString(docText);
string fileName = @"C:\FolderName\FileName.odt";
fileName = "file:///" + fileName.Replace(@"\", "/");
((XStorable)oDoc).storeAsURL(fileName, propVals);
((Xcomponent)oDoc).dispose();
Документы OpenOffice (odt) являются файлами ZIP. Вы можете разархивировать существующий файл, изменить файл content.xml по коду и затем использовать класс ZipFile из System.IO.Compression, например, чтобы снова получить файл ZIP.