Gerar arquivo Excel customizado

Leandro Lopes
Tera Contributor

Boa pessoal!

 

Preciso criar um arquivo Excel customizado com um relatório que possui um layout próprio (cores, linhas, logomarca ...).

 

Os passos são os seguintes:

 

1. Acesso uma API

2. Trato os dados da API

3. Com estes dados gero um arquivo Excel customizado (relatório)

 

NOTA: Já fiz isso com PDF, com a PDFGenerationAPI, uma API nativa do ServiceNow.

 

Tenho buscado uma solução semelhante para Excel e não tenho encontrado. Se alguém tiver um exemplo prático para apresentar ficaria agradecido. 

10 REPLIES 10

Acredito que não. Esta API GlideExcelParser serve justamente só para isto: Pegar os dados de uma planilha Excel e trabalhá-los dentro da instância SN

Emerson Patrik
Tera Contributor

@Leandro Lopesum tempo atrás precisei gerar um excel com dados vindo de um "variable set", veja o script abaixo e faça a adaptação para sua necessidade:

var _variable_set_tabela = current.variables.variable_set_tabela; 
var _sys_id = current.sys_id; // id do registro 
var _number = current.number; // numero do registro 
var _h = "Numro,DE,PARA,Obervação"; //cabeçalho do arquivo csv 

// loop no variable set que contem os dados da tabela 
JSON.parse(_variable_set_tabela).forEach(function(line) { 
    _h += "\n"; 
    // loop para pegar os dados necessário da tabela 
    ["question_set_number", "question_set_de", "question_set_para", "question_set_obs"].forEach(function(col, index) { 
        _h += line[col] + (index + 1 < Object.keys(line).length ? "," : ""); 
    }); 
}); 

// CRIA O ARQUIVO CSV 
var attachment = new Attachment(); 
attachment.write('sc_req_item', _sys_id, _number + ".csv", "text/csv", _h);

 Acredito que esse script pode lhe ajudar.

Abraço.

Bom vou usar este script e adaptar para o que eu preciso.

 

Obrigado @Emerson Patrik!

@Emerson Patrik , você utilizou esse script em uma UI Action?

 

Abraços.

Se for usar UI Action, este script pode ajudar:

 

// Get current filters
var userQuery = gs.action.getGlideURI().get('sysparm_query');

// Get current instance
var instance = gs.getProperty('glide.servlet.uri');

var table = 'table_name';
var view = 'view_with_required_fields';

var url = instance + table + '.do?CSV&sysparm_display_value=false&sysparm_export_column_header_label=true&sysparm_view=' + view + '&sysparm_query=' + userQuery + '^EQ';
action.setRedirectURL(url);