Unable to edit table in my Report
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
    Eric Aguado
 el 8 de Oct. de 2021
  
    
    
    
    
    Comentada: Eric Aguado
 el 12 de Oct. de 2021
            Hello,
I am new to coding/Matlabs and have run into an issue with my script that I am working on. My intention with this script is to take a .csv and make it pretty by generating a more presentable "Report." This report will break the table into 2 different tables, one for calibration and one for a final verification of the output.
Where I am having an issue is with the styling of the table. Nothing I seem to do changes the fontsize, style, padding, etc. Did I do something in my code that prevents me editing the table any styling for the report?
Here is my code:  
%% Import report API classes
import mlreportgen.report.*
import mlreportgen.dom.*
%% Clear content
clear;
%% Select .csv file to pull information from
[file, path] = uigetfile('*.csv');
file_name = strcat(path, file);
csv_file = fopen(file_name);
%% Set up the Import Options and import the data
opts = delimitedTextImportOptions("NumVariables", 14);
% Specify range and delimiter
opts.DataLines = [2, Inf];
opts.Delimiter = ",";
% Specify column names and types
opts.VariableNames = ["UNIT_", "CALTIME", "CAL_ADJ", "CPM", "PEAK", "PEAKSD", "PEAKTARG", "PEAKERR", "RESID", "RESIDSD", "RESIDMAXSPEC", "DYNRANGE", "PW", "PASS_FAIL"];
opts.VariableTypes = ["categorical", "categorical", "categorical", "double", "double", "double", "double", "double", "double", "double", "double", "double", "double", "categorical"];
% Specify file level properties
opts.ExtraColumnsRule = "ignore";
opts.EmptyLineRule = "read";
% Specify variable properties
opts = setvaropts(opts, ["UNIT_", "CALTIME", "CAL_ADJ", "PASS_FAIL"], "EmptyFieldRule", "auto");
% Make data set from .csv file 
caldata = readtable(file, opts);
%% Format Table Style
caldata.Style = [caldata.Style 
    {NumberFormat("%1.3f"),...
    Width("100%"),...
    Border("solid"),...
    ColSep("solid"),...
    RowSep("solid")}];
caldata.TableEntriesHAlign = "center";
append(rpt, caldata);
%% Create File and type
rpt = Report('output','docx');
%% Add content to Report
% Title Page
titlepg = TitlePage;
titlepg.Title = 'Project Title';
titlepg.Author = 'Company Name';
titlepg.PubDate = date;
add (rpt, titlepg);
% Table of contents
add (rpt, TableOfContents);
% Calibration Report
calr = Chapter('Calibration Report');
add (rpt, calr);
%head(caldata, 16) %Call Calibration rows from table
ta = head(caldata, 16);
append(rpt,ta);
% Append changes to table format
%append(rpt,caldata);
% Performance Verification Report
perfr = Chapter('Performance Report');
add (rpt, perfr);
%tail(caldata, 16) %Call Performance rows from table
caldata = tail(caldata, 16);
append(rpt,caldata);
%% Clear temporary variables
clear opts
%% Close Report
close (rpt);
%% Display Data
%display(caldata);
%Show Final Report
rptview(rpt);
0 comentarios
Respuesta aceptada
  Chetan Bhavsar
      
 el 9 de Oct. de 2021
        you need to create mlreportgen.dom.table
caldataNew = mlreportgen.dom.Table(caldata);
caldataNew = 
  Table with properties:
              ColSpecGroups: [1×14 mlreportgen.dom.TableColSpecGroup]
                      NCols: 14
                      NRows: 33
                      Width: []
                     HAlign: []
            BackgroundColor: []
                     Border: 'solid'
                BorderColor: []
                BorderWidth: '100px'
                     RowSep: 'single'
                RowSepColor: []
                RowSepWidth: []
                     ColSep: 'single'
                ColSepColor: []
                ColSepWidth: []
             BorderCollapse: []
              FlowDirection: []
            OuterLeftMargin: []
          TableEntriesStyle: {[1×1 mlreportgen.dom.HAlign]}
         TableEntriesVAlign: []
         TableEntriesHAlign: 'center'
    TableEntriesInnerMargin: []
                  StyleName: 'rgMATLABTable'
                      Style: {[1×1 mlreportgen.dom.Border]  [1×1 mlreportgen.dom.ColSep]  [1×1 mlreportgen.dom.RowSep]}
           CustomAttributes: []
                     Parent: []
                   Children: [1×33 mlreportgen.dom.TableRow]
                        Tag: 'dom.Table:20111'
                         Id: '20111'
This all property you can set or style them after setting.
Please find below part of your code updated.
It it fullfill your requirement please click on "Accept this Answer"
% Make data set from .csv file 
caldata = readtable(file, opts);
caldataNew = mlreportgen.dom.Table(caldata);
%% Format Table Style
caldataNew.Border='solid';
caldataNew.BorderWidth='100';
caldataNew.ColSep='Single';
caldataNew.RowSep='Single';
caldataNew.TableEntriesHAlign = "center";
%% Create File and type
rpt = Report('output','docs');
append(rpt, caldataNew);
Más respuestas (0)
Ver también
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

