2008-10-21 3 views

ответ

3

Посмотрите на AODL (см. http://odftoolkit.org/projects/odftoolkit/pages/AODL).

  • полностью управляемые .NET 1.1 (так он работает на MS.NET и Mono)
  • поддержка текстовых и табличных документов
  • создавать, читать, редактировать, сохранять документы
  • ...

EDIT по Каме: Новая ссылка AODL-Wiki

+0

Официальная версия AODL для .NET больше не доступна. Но есть некоторые вилки, которые вы все еще можете использовать. Лучшие вилки, которые я нашел (с дополнительными исправлениями авторов), являются [aodl-reloaded] (https://code.google.com/p/aodl-reloaded/) и [aodl] (https://bitbucket.org/ chrisc/AOD). Но я знаю, что все еще есть проблемы с текущими версиями OpenOffice/LibreOffice. – Alex 2015-01-21 08:09:43

2

Информацию о стандарте ODT вы можете найти в OASIS Standards site. Из того, что я видел, они используют стандарт на основе XML и имеют XSD для стандартного документа, поэтому вы можете использовать его вместе со своим собственным кодом для создания файла документа в соответствующем формате.

1

Я нашел это на e вчера, когда вы ищете способ создания Spreadsheet, похоже, что создание файлов сценариев очень похоже: http://www.suite101.com/content/creating-an-openoffice-calc-document-with-c-a124112, не забудьте сначала установить SDK Open Office из Oracle.

К сожалению, я еще не нашел способ создать файл, не открывая его.

0

код будет выглядеть следующим образом:

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(); 
-1

OpenOffice документы (а.с.) являются ZIP-файлы. Вы можете разархивировать существующий файл, изменить файл content.xml по коду, а затем использовать класс ZipFile из System.IO.Compression, например, чтобы снова получить zip-файл.

Смежные вопросы