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