Результаты анализа поиска ошибок или проверки кода можно экспортировать в отчет Excel ®. См. раздел Экспорт результатов анализа в пространстве. Отчет содержит результаты Polyspace ® в текстовом файле с разделителями табуляции с предопределенным содержимым и форматированием.
Можно также создавать отчеты Excel с собственным содержимым и форматированием. Автоматизация создания этого отчета с помощью сценариев MATLAB ®.
![]()
В этом примере показан пример сценария для создания отчетов Excel из результатов Polyspace.
Сценарий добавляет два листа в книгу Excel. Результаты отчета по содержимому листов из Polyspace в . Здесь, polyspaceroot\polyspace\examples\cxx\Code_Prover_Example\Module_1\CP_result является папкой установки Polyspace, например polyspacerootC:\Program Files\Polyspace\R2019a.
Каждый лист содержит сводку и сведения для определенного типа результата Polyspace:
MISRA C:2012: Этот лист содержит сводку нарушений правил MISRA C ®: 2012 в результатах Polyspace. За резюме следуют подробности каждого нарушения MISRA C: 2012.
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, с помощью предыдущего метода, этот метод имеет ограниченные параметры форматирования для отчета.
Чтобы отформатировать отчет Excel в системах Windows ®, откройте COM-сервер напрямую с помощью actxserver. Например, техническое решение 1-QLD4K использует actxserver чтобы установить соединение между MATLAB ® и Excel, запишите данные на лист и укажите цвета ячеек.
См. также раздел Начало работы с COM.
![]()