Вопрос

Примечание:Я нашел это "Создание документа 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, доступный для стандарта документа, так что вы можете использовать его вместе со своим собственным кодом для создания файла документа в правильном формате.

Я нашел это вчера, когда искал способ создания электронных таблиц, похоже, создание файлов писателя очень похоже: 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.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top