NumberFormat on specific/few columns - Report Generator

I am formating a table using this line:
tableData = FormalTable(tableData);
tableData.Border = 'Solid';
tableData.RowSep = 'Solid';
tableData.ColSep = 'Solid';
tableData.Style = [tableData.Style {NumberFormat("%.4f")}];
Is it possible to run the NumberFormat on specific/few columns and not on all the table?

Answers (1)

Hi Ali,
You can apply NumberFormat to any specific entry, row, or column in a table. Below are some examples:
%% Apply NumberFormat to a specific entry in the table
entry22 = tableData.entry(2,2);
entry22.Style = [entry22.Style {NumberFormat("%.4f")}];
%% Apply NumberFormat to specific row in the table
row3 = tableData.row(3);
row3.Style = [row3.Style {NumberFormat("%.4f")}];
%% Apply NumberFormat to specific column in the table
colNumber = 1;
for iRow = 1:tableData.NRows
tableEntry = tableData.entry(iRow,colNumber);
tableEntry.Style = [tableEntry.Style {NumberFormat("%.4f")}];
end
Thanks,
Rahul

4 Comments

Thanks.
When I apply the %% Apply NumberFormat to specific column in the table code, I get this error:
Unrecognized method, property, or field 'NRows' for class 'mlreportgen.dom.FormalTable'.
Do I have to declare NRows in advance? or it is automatic
For FormalTable, use tableData.Body instead of tableData, for e.g.,
colNumber = 1;
for iRow = 1:tableData.Body.NRows
tableEntry = tableData.Body.entry(iRow,colNumber);
tableEntry.Style = [tableEntry.Style {NumberFormat("%.4f")}];
end
Thanks a lot it worked.
I also tried to convert the numbers to decimal by replacing to this line:
tableEntry.Style = [tableEntry.Style {NumberFormat("%d")}];
But I go this error:
Error using mlreportgen.dom.NumberFormat
Invalid sprintf value for NumberFormat: %d.
Why?

Sign in to comment.

Categories

Products

Release

R2021b

Asked:

on 26 Jan 2022

Commented:

on 27 Jan 2022

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!