How to automatically save test reports with .xlsx suffix ?

 

According Trading Platform - User Guide:

Report — the name of the file to save the report on testing or optimization results. The file is created in the trading platform directory. You can specify a path to save the file, relative to this directory, for example, \reports\tester.htm. The subdirectory where the report is saved should exist. If no extension is specified in the file name, the ".htm" extension is automatically used for testing reports, and ".xml" is used for optimization reports. If this parameter is not set, the testing report will not be saved as a file. If forward testing is enabled, its results will be saved in a separate file with the ".forward" suffix. For example, tester.forward.htm.

I don't want .xml or .htm,  after strategy test, I want to automatically save test reports in excel .xlsx suffix. 

I set " tester.xlsx" , but the result is "  tester.xlsx.htm ".

We can manually save in XLSX format, but can it be automatically saved in XLSX format?   How to set it ?

 
It is don't support xlsx, but I found the solution myself. Convert the format using python.
 
Yu Zhang #:
It is don't support xlsx, but I found the solution myself. Convert the format using python.
Can you share the Converter with us?

Thank you
 

Save test result as xml and convert to csv in python:

file_name = "ReportOptimizer_result"
root_path = "/Data/"

xlxml_file = f"{root_path}{file_name}.xml"
out_file = f"{root_path}{file_name}.csv"

import pandas as pd
import xml.etree.ElementTree as ET

tree = ET.parse(xlxml_file)
root = tree.getroot()
ns = {"doc": "urn:schemas-microsoft-com:office:spreadsheet"}

data = []
rows = enumerate(root.findall('.//doc:Row', ns))
for i, node in rows:
    row = []
    j = 0
    while (True):
        j += 1
        val = node.find(f"doc:Cell[{j}]/doc:Data", ns)
        if val is not None:
            row.append(val.text)
        else:
            data.append(row)
            break

data_df = pd.DataFrame(data[1:], columns=data[:1])
data_df.to_csv(out_file)
 
you can do something when OnDeinit triger, 
likly save the history to file.