---
sourceDocument: Referência de API do Xanadu
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/pt-BR/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - pt-BR

ft:publication_title :

    - Referência de API do Xanadu

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideExcelParser - com escopo, global

# GlideExcelParser - com escopo, global {#ariaid-title1}

* Versão de lançamento: Xanadu
* 
* Atualizado 1 de ago. de 2024
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 19 min. de leitura

A API GlideExcelParser analisa arquivos do Excel no formato .xlsx e acessa dados de arquivo em scripts.

Você pode usar os métodos GlideExcelParser em scripts globais e com escopo. Use o identificador de namespace `sn_impex` para criar um objeto GlideExcelParser.

## GlideExcelParser - GlideExcelParser() {#ariaid-title2}

Cria uma instância de GlideExcelParser.
O identificador de espaço de nome de API "sn_impex" deve ser usado ao criar um objeto GlideExcelParser.
{#GEPS-GlideExcelParser__table_fwc_dyb_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 1. Parâmetros]

{#GEPS-GlideExcelParser__table_fwc_dyb_4z}  

    var parser = new sn_impex.GlideExcelParser(); 
    var attachment = new GlideSysAttachment();
    // use attachment sys id of an excel file
    var attachmentStream = attachment.getContentStream(<attachment sys id>);

    parser.parse(attachmentStream); 

    //retrieve the column headers
    var headers = parser.getColumnHeaders();  
    var header1 = headers[0]; 
    var header2 = headers[1]; 

    //print headers
    gs.info(header1 + " " + header2); 

    while(parser.next()) { 
      var row = parser.getRow(); 
      //print row value for both columns   
      gs.info(row[header1] + ' ' + row[header2]) 
    }

## GlideExcelParser -- fechar () {#ariaid-title3}

Feche a conexão com o fluxo de entrada e libere o documento.
{#GEPS-close__table_ibr_rrh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 2. Parâmetros]

{#GEPS-close__table_ibr_rrh_4z} {#GEPS-close__table_jbr_rrh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 3. Retorna]

{#GEPS-close__table_jbr_rrh_4z}  
Este exemplo mostra como fechar o analisador quando toda a gestão de documentos estiver concluída.

    // iterate over each row in the excel sheet
    var attachment = new GlideSysAttachment();
    var attachmentStream = attachment.getContentStream(<attachment sys id>);
    var parser = new sn_impex.GlideExcelParser();
    parser.parse(attachmentStream);
    while (parser.next()) {
      // do something on each row
      var row = parser.getRow();
      gs.info(JSON.stringify(row));
    }
    parser.close(); // close the stream and release the document

## GlideExcelParser -- getColumnHeaders() {#ariaid-title4}

Retorna uma lista de cabeçalhos de coluna do documento analisado.
{#GEPS-getColumnHeaders__table_mkv_d3h_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 4. Parâmetros]

{#GEPS-getColumnHeaders__table_mkv_d3h_4z} {#GEPS-getColumnHeaders__table_nkv_d3h_4z__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | Uma matriz de cadeias de caracteres de cabeçalhos de coluna do documento analisado. |
[Tabela 5. Retorna]

{#GEPS-getColumnHeaders__table_nkv_d3h_4z}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser -- getErrorMessage() {#ariaid-title5}

Retorna a mensagem de erro quando o método parse() falha.
{#GEPS-getErrorMessage__table_rsc_2rh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 6. Parâmetros]

{#GEPS-getErrorMessage__table_rsc_2rh_4z} {#GEPS-getErrorMessage__table_ssc_2rh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| Cadeia de caracteres | A mensagem de erro. |
[Tabela 7. Retorna]

{#GEPS-getErrorMessage__table_ssc_2rh_4z}

## GlideExcelParser -- getRow() {#ariaid-title6}

Obtenha os valores de linha e cabeçalhos atuais.
{#GEPS-getRow__table_g4y_pqh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 8. Parâmetros]

{#GEPS-getRow__table_g4y_pqh_4z} {#GEPS-getRow__table_h4y_pqh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Os cabeçalhos de linha são nomes de propriedade e os valores de linha são valores de propriedade. |
[Tabela 9. Retorna]

{#GEPS-getRow__table_h4y_pqh_4z}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser -- getSheetNames() {#ariaid-title7}

Obtém uma lista de todos os nomes de planilha em uma pasta de trabalho do Excel.
{#GEPS-getSheetNames__table_cjs_w4p_pnb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 10. Parâmetros]

{#GEPS-getSheetNames__table_cjs_w4p_pnb} {#GEPS-getSheetNames__table_djs_w4p_pnb__entry__2}

| Tipo | Descrição |
|-|-|
| Matriz | Matriz de cadeias de caracteres como nomes de planilha ordenados conforme posicionados da esquerda para a direita na pasta de trabalho. Os resultados incluem todas as planilhas marcadas como ocultas. |
[Tabela 11. Retorna]

{#GEPS-getSheetNames__table_djs_w4p_pnb}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser -- getTableInfo() {#ariaid-title8}

Obtém os tipos de coluna da tabela e o tamanho máximo de caracteres de uma planilha ou anexo CSV.
Nota:  
Este método é restrito a aplicações com escopo.
{#GEPS-getTableInfo__table_gnh_csz_4hb__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 12. Parâmetros]

{#GEPS-getTableInfo__table_gnh_csz_4hb} {#GEPS-getTableInfo__table_hnh_csz_4hb__entry__2}

| Tipo | Descrição |
|-|-|
| Objeto | Retorna dados de anexo como um mapa no qual a chave é o nome da coluna. Os valores contêm o tipo de coluna e o tamanho máximo de uma cadeia de caracteres na coluna. Acesse os valores de retorno usando os métodos getType() e getLength(). |
[Tabela 13. Retorna]

{#GEPS-getTableInfo__table_hnh_csz_4hb}  
Este exemplo mostra como dados de um anexo de planilha de 7 colunas, incluindo dados de linha como 1, Megan, 1/1/85, 1:00 AM, 10.00%, 224-432-8582, 1/2.

    var attachmentSysId = "<sys_id>";
    var headerRowNumber = 6;

    var attachmentStream = new GlideSysAttachment().getContentStream(attachmentSysId);
    var parser = new sn_impex.GlideExcelParser();
    parser.setHeaderRowNumber(headerRowNumber);
    if (!parser.parse(attachmentStream)) {
        throw "Attachment could not be parsed as an Excel Spreadsheet " + attachmentSysId;
    }
    var tableInfo = parser.getTableInfo();
    for (var name in tableInfo) {
    gs.info('Column Name : ' + name + ', Type : ' + tableInfo[name].getType() + ', Max Length : ' + tableInfo[name].getLength());
    }

Saída:

    ProgressWorker: Attempted to get non-existent sys_progress_
    worker record, inserted 81b0ca5ddb59730090c9ff9dbf9619c4
    sn_appcreator: Column Name : My Number Col, Type : integer,
     Max Length : 1
    sn_appcreator: Column Name : My String Col, Type : string, 
     Max Length : 650
    sn_appcreator: Column Name : My Date Col, Type : glide_date,
     Max Length : 6
    sn_appcreator: Column Name : My DateTime Col, Type : 
     glide_date_time, Max Length : 7
    sn_appcreator: Column Name : My Percent Col, Type : decimal,
     Max Length : 6
    sn_appcreator: Column Name : My Phone Col, Type : string, 
     Max Length : 12
    sn_appcreator: Column Name : My Fraction Col, Type : decimal,
     Max Length : 3

## GlideExcelParser - next() {#ariaid-title9}

Move para a próxima linha.
{#GEPS-next__table_dd1_2qh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| Nenhum |   |   |
[Tabela 14. Parâmetros]

{#GEPS-next__table_dd1_2qh_4z} {#GEPS-next__table_ed1_2qh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Retorna verdadeiro se houver uma próxima linha, caso contrário, retorna falso. |
[Tabela 15. Retorna]

{#GEPS-next__table_ed1_2qh_4z}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser - parse(InputStream inputStream) {#ariaid-title10}

Analisa um documento do Excel no formato XLSX.
{#GEPS-parse_GSIS__table_u2j_lch_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fluxo de entrada | [GlideScriptableInputStream](https://servicenow-prod.fluidtopics.net/5aKR4~xmqirNbwePEsEBBA "Um objeto GlideScriptableInputStream não pode ser instanciado diretamente, mas é usado como um objeto opaco que é usado para conectar um fluxo de entrada de GlideSysAttachment.getContentStream() com outras APIs de streaming.") | Excel documentot fornecido como um fluxo de entrada. Nota: Não defina este valor se estiver usando o método [setSource()](https://servicenow-prod.fluidtopics.net/AE773t~tYy~LyTAowQBWog#GEPS-setSource_O "Define uma origem de entrada para analisar várias vezes ou analisar cada planilha em um arquivo do Excel.") para analisar a mesma origem várias vezes. |
[Tabela 16. Parâmetros]

{#GEPS-parse_GSIS__table_u2j_lch_4z} {#GEPS-parse_GSIS__table_v2j_lch_4z__entry__2}

| Tipo | Descrição |
|-|-|
| Booliano | Sinalizador que indica se a análise foi bem-sucedida. Valores válidos: * verdadeiro: o documento foi analisado com sucesso. * falso: o documento não foi analisado com sucesso. {#GEPS-parse_GSIS__ul_mkg_l5t_vnb} |
[Tabela 17. Retorna]

{#GEPS-parse_GSIS__table_v2j_lch_4z}  
Exemplo de um script de REST API em que o arquivo do Excel é enviado usando um fluxo de entrada na carga da solicitação.

    var parser = new sn_impex.GlideExcelParser();
    parser.parse(request.body.dataStream); 

O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser - setHeaderRowNumber(Número de cabeçalhoRowNumber) {#ariaid-title11}

Defina o número da linha de cabeçalho a ser recuperada.
{#GEPS-setHeaderRowNumber_N__table_h1d_kfh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| headerRowNumber | Número | A linha de cabeçalho a ser recuperada. |
[Tabela 18. Parâmetros]

{#GEPS-setHeaderRowNumber_N__table_h1d_kfh_4z} {#GEPS-setHeaderRowNumber_N__table_i1d_kfh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 19. Retorna]

{#GEPS-setHeaderRowNumber_N__table_i1d_kfh_4z}

## GlideExcelParser - setNullToEmpty (booliano vazio) {#ariaid-title12}

Retornar um valor vazio em vez de nulo quando uma célula do Excel não estiver presente.
{#GEPS-setNullToEmpty_B__table_lrz_wgh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| vazia | Booliano | Quando verdadeiro, as células que não estão presentes retornam um valor vazio. Quando falso, as células que não estão presentes retornam nulas. |
[Tabela 20. Parâmetros]

{#GEPS-setNullToEmpty_B__table_lrz_wgh_4z} {#GEPS-setNullToEmpty_B__table_mrz_wgh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 21. Retorna]

{#GEPS-setNullToEmpty_B__table_mrz_wgh_4z}

## GlideExcelParser - setSheetName(cadeia de caracteres "sheetName") {#ariaid-title13}

Defina o nome da planilha a ser recuperada.
Se setSheetNumber() e setSheetName() estiverem definidos, setSheetName() será usado.
{#GEPS-setSheetName_S__table_tm3_p2h_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| NomeDaPlanilha | Cadeia de caracteres | O nome da planilha a ser recuperada. |
[Tabela 22. Parâmetros]

{#GEPS-setSheetName_S__table_tm3_p2h_4z} {#GEPS-setSheetName_S__table_um3_p2h_4z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 23. Retorna]

{#GEPS-setSheetName_S__table_um3_p2h_4z}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin

## GlideExcelParser - setSheetNumber(NúmerosheetNumber) {#ariaid-title14}

Defina o número da planilha do Excel a ser recuperada.
Se setSheetNumber() e setSheetName() estiverem definidos, setSheetNumber() será ignorado.
{#GEPS-setSheetNumber_N__table_ztb_tdh_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| númerofolha | Número | O número da planilha do Excel a ser recuperado. |
[Tabela 24. Parâmetros]

{#GEPS-setSheetNumber_N__table_ztb_tdh_4z} {#GEPS-setSheetNumber_N__table_a5b_tdh_4z__entry__2}

| Tipo | Descrição |
|-|-|
| vazio |   |
[Tabela 25. Retorna]

{#GEPS-setSheetNumber_N__table_a5b_tdh_4z}  
O exemplo a seguir mostra como usar este método para especificar o número da folha de uma pasta de trabalho de planilha anexada a ser lida.

    var parser = new sn_impex.GlideExcelParser(); 
    var attachment = new GlideSysAttachment();

    // Use the sys id of an Excel file in the sys_attachment table and copy the sys_id of attachment.
    var attachmentStream = attachment.getContentStream('178e0511138b6300026e32228144b04e');

    // Specify the sheet Number to be read, 0 denotes sheet 1, 1 denotes sheet 2, etc.
    parser.setSheetNumber("0");   

    parser.parse(attachmentStream);

    // retrieve the column headers (tests if on the correct sheet)
    var headers = parser.getColumnHeaders();
    var header1 = headers[0];
    var header2 = headers[1];
    var header3 = headers[2];

    // print headers
    gs.info('Header 1 value = ' +header1);
    gs.info('Header 2 value = ' +header2);
    gs.info('Header 3 value = ' +header3);

Saída:

    Header 1 value = sys_id
    Header 2 value = email
    Header 3 value = undefined

## GlideExcelParser - setSource(InputStream inputStream) {#ariaid-title15}

Define uma origem de entrada para analisar várias vezes ou analisar cada planilha em um arquivo do Excel.
{#GEPS-setSource_O__table_u2j_lch_4z__entry__3}

| Nome | Tipo | Descrição |
|-|-|-|
| fluxo de entrada | [GlideScriptableInputStream](https://servicenow-prod.fluidtopics.net/5aKR4~xmqirNbwePEsEBBA "Um objeto GlideScriptableInputStream não pode ser instanciado diretamente, mas é usado como um objeto opaco que é usado para conectar um fluxo de entrada de GlideSysAttachment.getContentStream() com outras APIs de streaming.") | Documento do Excel fornecido como um fluxo de entrada. |
[Tabela 26. Parâmetros]

{#GEPS-setSource_O__table_u2j_lch_4z} {#GEPS-setSource_O__table_otr_z4p_pnb__entry__2}

| Tipo | Descrição |
|-|-|
| Nenhum |   |
[Tabela 27. Retorna]

{#GEPS-setSource_O__table_otr_z4p_pnb}  
O exemplo a seguir mostra como analisar um anexo de arquivo do Excel várias vezes para recuperar cabeçalhos de coluna e imprimir valores de cada linha de cada planilha. Os resultados exibem cabeçalhos de coluna e valores de três planilhas separadas no anexo do Excel.

    var parser = new sn_impex.GlideExcelParser();

    var attachment = new GlideSysAttachment();

    // Use the attachment sys_id of an Excel file
    var attachmentStream = attachment.getContentStream("<attachment_sys_id>");

    // Set the source to be parsed
    parser.setSource(attachmentStream);

    // Get the worksheet names to be parsed in the Excel document
    var list_sheet_name = parser.getSheetNames();

    gs.info(" Sheet Names " + list_sheet_name.join(", "));

    // Iterate over each worksheet in the Excel workbook
    for (var i = 0; i < list_sheet_name.length; i++) {
        gs.info("**************************************************************************************");
        gs.info("Sheet name:    " + list_sheet_name[i]);

    // Set the worksheet name to be parsed
        parser.setSheetName(list_sheet_name[i]);

    // Parse each worksheet set using setSheetName()
        if (parser.parse()) {
            //retrieve the column headers
            var headers = parser.getColumnHeaders();
            var header1 = headers[0];
            var header2 = headers[1];
            var header3 = headers[2];

            //print headers
            gs.info(header1 + "\t||" + header2 + "\t||" + header3);

            // Iterate over each row in the worksheet
            while (parser.next()) {
                var row = parser.getRow();
                //print row value for both columns   
                gs.info(row[header1] + '\t|| ' + row[header2] + '\t||' + row[header3])
            }
        } else
            gs.info(parser.getErrorMessage());
    }

Saída:

    *** Script:  Sheet Names Incident Table, sys_user Table, knowledge Table
    *** Script: **************************************************************************************
    *** Script: Sheet name:    Incident Table
    *** Script: Number	||Opened	||Short description
    *** Script: INC0010112	|| 2019-07-29 11:48:43	||Assessment :  ATF Assessor
    *** Script: INC0010111	|| 2019-07-22 14:04:57	||ATF : Test1
    *** Script: INC0009009	|| 2018-08-30 01:06:16	||Unable to access the shared folder.
    *** Script: **************************************************************************************
    *** Script: Sheet name:    sys_user Table
    *** Script: User ID	||Name	||Email
    *** Script: abel.tuter	|| Abel Tuter	||abel.tuter@example.com
    *** Script: abraham.lincoln	|| Abraham Lincoln	||abraham.lincoln@example.com
    *** Script: adela.cervantsz	|| Adela Cervantsz	||adela.cervantsz@example.com
    *** Script: aileen.mottern	|| Aileen Mottern	||aileen.mottern@example.com
    *** Script: alejandra.prenatt	|| Alejandra Prenatt	||alejandra.prenatt@example.com
    *** Script: **************************************************************************************
    *** Script: Sheet name:    knowledge Table
    *** Script: Number	||Short description	||Author
    *** Script: KB99999999	|| Microsoft Outlook Issues	||System Administrator
    *** Script: KB0000033	|| Eclipse configuration for Android development	||System Administrator
    *** Script: KB0000032	|| Getting Around in Windows	||System Administrator
    *** Script: KB0000031	|| How can I find the MAC address of my Ethernet or
       wireless interface?	||Sam Sorokin


