Direct Office
Delphi Open XML library for processing .docx, .pptx and .xlsx documents.
- create or modify Word Document .docx files
- create or modify PowerPoint Presentation .pptx files
- create or modify Excel Workbook .xlsx files
- Microsoft Office installation is not required
- uses Microsoft Open XML SDK 2.12.1
- support Windows 32 and Windows 64
- available for Delphi 7 - 10.4
- royalty free distribution in applications
Download and order
Order Direct Office library $120 USD (license for one developer)
Order Direct Office multi-license $360 USD (license for all developers in company)
Order Direct Office year upgrades $60 USD (registered users only)
Order Direct Office year upgrades multi-license $180 USD (registered multi-license users only)
FAQ
How can I solve "Project Demo.exe raised exception class $C0000090 with message 'floating point invalid operation at 0x70934779'." error message?
Switch off floating point exceptions using this code:
We can offer you custom software development service to convert or develop code for Direct Office. Our hourly rate is $80 USD.
How can I set document properties?
Embed yourapplicationname.exe.manifest file to your application: Select Delphi menu Project/Options.../Application. Change Manifest File combobox to Custom and select yourapplicationname.exe.manifest file in Custom manifest edit box.
Instead of embedding yourapplicationname.exe.manifest file to your application, you can comment "{$R *.res}" line in yourapplicationname.dpr file and use external yourapplicationname.exe.manifest file:
Switch off floating point exceptions using this code:
Set8087CW(Get8087CW or $3F);How can I convert example written in C# language?
We can offer you custom software development service to convert or develop code for Direct Office. Our hourly rate is $80 USD.
How can I set document properties?
Spreadsheet.PackageProperties_.Title := 'MyTitle';How can I create custom document property?
CustomProperty: _CustomDocumentProperty; CustomProperties: _CustomFilePropertiesPart; CustomProperty := CoCustomDocumentProperty.Create; CustomProperty.FormatId := CoStringValueClass.Create.Value('{D5CDD505-2E9C-101B-9397-08002B2CF9AE}'); CustomProperty.Name := CoStringValueClass.Create.Value('MyName'); CustomProperty.VTInt32 := CoVTInt32.Create; CustomProperty.VTInt32.Text := '123'; CustomProperty.PropertyId := CoInt32ValueClass.Create.Value(2); CustomProperties := Spreadsheet.AddCustomFilePropertiesPart; CustomProperties.Properties := CoDocumentFormat_OpenXml_CustomProperties_Properties.Create; CustomProperties.Properties.AppendChild(CustomProperty as _OpenXmlElement);How can I solve "Class not registered." error message?
- Create manifest file yourapplicationname.exe.manifest (change yourapplicationname accordingly to the name of your application):
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <assemblyIdentity version="1.0.0.0" processorArchitecture="*" name="yourapplicationname" type="*"/> <dependency> <dependentAssembly> <assemblyIdentity type="win32" name="Microsoft.Windows.Common-Controls" version="6.0.0.0" publicKeyToken="6595b64144ccf1df" language="*" processorArchitecture="*"/> </dependentAssembly> </dependency> <dependency> <dependentAssembly> <assemblyIdentity name="Winsoft.DirectOffice" version="4.1.0.0" publicKeyToken="8fb06cb64d019a17" processorArchitecture="msil"/> </dependentAssembly> </dependency> </assembly>
// {$R *.res}