The procedure below works well.
But I would also like to activate the *.xlsx file, which is located in the folder of my exe program, to run either Excel or LibreOffice-Calc.
Van you please provide an example with the code?
procedure TFmain.MenuItemExportXLSXClick(Sender: TObject);
var
varWorkbook: TsWorkbook;
varWorksheet: TsWorksheet;
varR, varC: Integer;
varFilename: String;
begin
// Create a workbook
varWorkbook := TsWorkbook.Create;
try
try
// Add a worksheet to the workbook
varWorksheet := varWorkbook.AddWorksheet('Export-Wiezen ');
// Write the title row
for varC := 0 to StringGrid1.ColCount-1 do
varWorksheet.WriteText(0, varC, StringGrid1.Cells[varC, 0]);
// Write the data cells
for varR := 1 to StringGrid1.RowCount-1 do
begin
for varC := 0 to StringGrid1.ColCount-1 do
case varC of
//0: TEKST
0: varWorksheet.WriteText(varR, varC, StringGrid1.Cells[varC, varR]);
//1: CIJFERS
1: varWorksheet.WriteText(varR, varC, StringGrid1.Cells[varC, varR]);
//2: CIJFERS
2: varWorksheet.WriteText(varR, varC, StringGrid1.Cells[varC, varR]);
//3: CIJFERS
3: varWorksheet.WriteText(varR, varC, StringGrid1.Cells[varC, varR]);
//4: CIJFERS
4: varWorksheet.WriteText(varR, varC, StringGrid1.Cells[varC, varR]);
end;
end;
varFilename := 'Wiezen-'+FormatDateTime('yyyy-mm-dd__hh.mm', now)+'.xlsx';
varWorkbook.WriteToFile(varFilename, sfOOXML, true);
//// ShellExecute(0, 'open', PChar(), 'varFilename', '', SW_SHOWNORMAL);
except
On E: Exception do
begin
Showmessage(E.Message);
end;
end;
finally
XLSXproc; // Eigen procedure:('EXPORT naar XLSX bestand is voldaan! ');
// Destroy the workbook after usage.
varWorkbook.Free;
end;
end;
In uses:
uses
Windows,
Dialogs, Interfaces, Classes, SysUtils, FileUtil, Forms,
Controls, ExtCtrls, StdCtrls, ComCtrls, Graphics, Menus,
Grids, Buttons, IniFiles, StrUtils, Printers, OSPrinters, Variants,
lMessages, LCLIntf, LCLProc, LCLType,
fpSpreadsheet, fpsTypes, xlsxOOXML, fpsexport;
Do I need: Process or ShellApi ?