Экспортируйте результаты анализа Polyspace в Excel при помощи Скриптов MATLAB

Можно экспортировать результаты анализа Программы автоматического доказательства Средства поиска или Кода Ошибки к отчету Excel®. Смотрите Результаты анализа Polyspace Экспорта. Отчет содержит результаты Polyspace® в текстовом файле с разделителями табуляции с предопределенным содержимым и форматированием.

Можно также создать отчеты Excel с собственным содержимым и форматированием. Автоматизируйте создание этого отчета при помощи скриптов MATLAB®.

Сообщите о сводных данных результата и деталях в одном рабочем листе

Этот пример показывает демонстрационный скрипт для генерации отчетов Excel от результатов Polyspace.

Скрипт добавляет два рабочих листа в рабочую книгу Excel. Рабочие листы сообщают о содержимом от результатов Polyspace в polyspaceroot\polyspace\examples\cxx\Code_Prover_Example\Module_1\CP_result. Здесь, polyspaceroot папка установки Polyspace, такая как C:\Program Files\Polyspace\R2019a.

Каждый рабочий лист содержит сводные данные и детали для определенного типа результата Polyspace:

  • MISRA C:2012: Этот рабочий лист содержит сводные данные MISRA C®: 2 012 нарушений правила в результатах Polyspace. Сводные данные сопровождаются деталями каждого MISRA C: 2 012 нарушений.

  • RTE: Этот рабочий лист содержит сводные данные ошибок времени выполнения та найденная Программа автоматического доказательства Кода. Сводные данные сопровождаются деталями каждой ошибки времени выполнения.

% Copy a demo result set to a temporary folder.
resPath = fullfile(polyspaceroot,'polyspace','examples','cxx', ...
    'Code_Prover_Example','Module_1','CP_Result');  
userResPath = tempname;
copyfile(resPath,userResPath);
 
% Read results into a table.
results = polyspace.CodeProverResults(userResPath);
resultsTable = results.getResults;

% Delete any existing file and create new file
filename = 'polyspace.xlsx';
if isfile(filename) 
    delete(filename)
end

% Disable warnings about adding new worksheets
warning('off','MATLAB:xlswrite:AddSheet')

% Write MISRA summary to the MISRA 2012 worksheet
misraSummaryTable = results.getSummary('misraC2012');
writetable(misraSummaryTable, filename, 'Sheet', 'MISRA 2012');

% Write MISRA results to the MISRA 2012 worksheet
misraDetailsTable = resultsTable(resultsTable.Family == 'MISRA C:2012',:);
detailsStartingCell = strcat('A',num2str(height(misraSummaryTable)+ 4)); 
writetable(misraDetailsTable, filename, 'Sheet', 'MISRA 2012', 'Range', ...
detailsStartingCell);

% Write runtime summary to the RTE worksheet
rteSummaryTable = results.getSummary('runtime');
writetable(rteSummaryTable, filename, 'Sheet', 'RTE');

% Write runtime results to the RTE worksheet
rteResultsTable = resultsTable(resultsTable.Family == 'Run-time Check',:);
detailsStartingCell = strcat('A',num2str(height(rteSummaryTable)+ 4));
writetable(rteResultsTable, filename, 'Sheet', 'RTE', 'Range', detailsStartingCell);

Ключевые функции, используемые в примере:

  • polyspace.CodeProverResults: Считайте результаты Программы автоматического доказательства Кода в таблицу.

  • writetable: Запишите таблицу MATLAB в файл. Если имя файла имеет дополнительный .xslx, функция пишет в файл Excel.

    Чтобы задать содержимое, чтобы записать в лист Excel, используйте эти пары "имя-значение":

    • Используйте имя Sheet соединенный с листом называют, чтобы задать рабочий лист в рабочей книге Excel.

    • Используйте имя Range соединенный с ячейкой называют, чтобы задать стартовую ячейку в рабочем листе, где запись начинается.

Управляйте форматированием Excel Report

Хотя можно управлять содержимым, экспортируемым в отчет Excel при помощи предыдущего метода, метод ограничил параметры форматирования для отчета.

Чтобы отформатировать отчет Excel относительно систем Windows®, получите доступ к серверу COM непосредственно при помощи actxserver. Например, Техническое решение 1-QLD4K использует actxserver чтобы установить связь между MATLAB® и Excel, запишите данные к рабочему листу и задайте цвета ячеек.

См. также Начало работы с COM.

Похожие темы