How to create a file in the Microsoft Word 2007 XML format from Delphi/C++Builder/Lazarus

2020-06-10

DOCX is an archive file that can be unpacked by a third-party program. This format is an upgraded version of the well-known DOC extension. A significant difference is a low file weight while maintaining all the original image parameters. If .doc is a binary text file, .docx contains XML files and additional folders when the file compression reduces its size.

This is a universal format that can easily be read by almost any email client, cloud storage and text editors on your mobile device.
You can use the following programs to work with docx: WindowsWord, Libre Office, Open Office, Word Pad, AiReader, Ice Book Reader, Caliber, Universal Viewer, Text Maker, Ability Write. This is just a small list of the huge number of programs that can open files in DOCX format.

I wrote in more detail about XML in “How to export a report to Excel XML from Delphi / Lazarus ” article. But how do you create a file in the DOCX format from Delphi or Lazarus? Using FastReport!

Saving in .docx format from Delphi without writing a single line of code!

Setting Microsoft Word 2007 XML

First of all, add TfrxReport and TfrxDOCXExport (export to Microsoft Word 2007 XML) components on the form. Then create a report template in the designer, generate a report, click on Save in the preview window and call export from the preview (below I will describe how to save in DOCX format using a Delphi code). The window with export to DOCX settings will appear.

Although there are not many settings, it’s worth talking about them. First of all, we can choose which pages of our document to export to Word – certain pages or a range.


Setting Microsoft Word 2007 XML

As usual, you can specify where to save your DOCX file (in the local storage, send by e-mail, upload to FTP or cloud).


Open after export: the resulting file will be opened immediately after export by any software associated with these files. 



 

How to save in DOCX format directly from Delphi / Lazarus using a code

Saving to Microsoft Word 2007 XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button1Click(Sender: TObject);
begin
 {Generate a report. The report must be generated before exporting}
 frxReport1.PrepareReport();
 {Set the range of pages to export. By default, all pages of the generated report are exported}
 frxDOCXExport1.PageNumbers := '2-3';
 {Set whether to open the resulting file after export}
 frxDOCXExport1.OpenAfterExport := False;
 {Set whether to display export progress
  (show which page is currently being exported)}
 frxDOCXExport1.ShowProgress := False;
 {Set whether to display the export filter settings dialog box}
 frxDOCXExport1.ShowDialog := False;
 {Set the name of the resulting file.}
 {Please note that if you do not set the file name and disable the export filter dialog box,}
 {the file name selection dialog will still be displayed}
 frxDOCXExport1.FileName := 'C:\Output\test.docx';
 {Export the report}
 frxReport1.Export(frxDOCXExport1);
end;

Nothing complicated, as usual.

VCL Export Lazarus FastReport Delphi Word VCL Export Lazarus FastReport Delphi Word
March 11, 2025

How to Use FastReport .NET Avalonia on Fedora Workstation with Wayland Protocol

In this article, we will discuss how to run FastReport .NET Avalonia on the "Fedora Workstation 39" operating system with Wayland protocol.
March 07, 2025

How to Create a QR Code with an Image in FastReport .NET

The article figured out how to insert a picture into a QR Code from the report designer FastReport.NET in just a couple of clicks.
February 20, 2025

Using Dot Matrix Printers for Printing Receipts

This article will explore how to integrate a dot matrix printer into the process of creating and outputting reports using FastReport .NET.
Fast Reports
  • 800-985-8986 (English, US)
  • +31 97 01025-8466 (English, EU)
  • +49 30 56837-3928 (German, DE)
  • +55 19 98147-8148 (Portuguese, BR)
  • info@fast-report.com
  • 66 Canal Center Plaza, Ste 505, Alexandria, VA 22314

© 1998-2025 Fast Reports Inc.