Можно экспортировать результаты анализа Bug Finder или Code Prover в Excel® отчет. См. раздел Экспорт результатов анализа Polyspace. Отчет содержит Polyspace® результаты получается текстовый файл с разделителями табуляции с предопределенным содержимым и форматированием.
Можно также создавать отчеты Excel с собственным содержимым и форматированием. Автоматизируйте создание этого отчета с помощью MATLAB® скрипты.
В этом примере показан пример скрипта для генерации отчетов Excel из результатов Polyspace.
Скрипт добавляет два листа в книгу Excel. Содержимое отчетов о листах из результатов Polyspace в
. Здесь, polyspaceroot
\ polyspace\examples\cxx\Code _ Prover _ Example\Module _ 1\CP _ результат
- папка установки Polyspace, например polyspaceroot
C:\Program Files\Polyspace\R2019a
.
Каждый лист содержит сводные данные и детали для определенного типа результата Polyspace:
MISRA C:2012
: Этот лист содержит сводные данные MISRA C®: 2012 нарушение правил в результатах Polyspace. Далее приводятся подробные данные о каждом нарушении MISRA C: 2012.
RTE
: Этот лист содержит сводные данные ошибок времени выполнения, обнаруженных Code Prover. За сводные данные следуют подробности каждой ошибки времени выполнения.
% 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
: Чтение результатов Code Prover в таблицу.
writetable
: Запись таблицы MATLAB в файл. Если имя файла имеет расширение .xslx
функция записывает данные в файл Excel.
Чтобы указать содержимое для записи на лист Excel, используйте следующие пары "имя-значение":
Используйте имя Sheet
в паре с именем листа для задания листа в книге Excel.
Используйте имя Range
в паре с именем камеры для задания начальной камеры в листе, с которого начинается запись.
Хотя можно управлять содержимым, экспортированным в отчет Excel с помощью предыдущего метода, метод имеет ограниченные опции форматирования для отчета.
Форматирование отчета Excel в Windows® системы, доступ к COM-серверу непосредственно при помощи actxserver
. Для примера Technical Решения 1-QLD4K использует actxserver
чтобы установить соединение между MATLAB ® и Excel, запишите данные в лист и укажите цвета камер.
См. также раздел «Начало работы с COM».