GlideExcelParser - スコープ対象、グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:47分
  • GlideExcelParser API は、.xlsx形式の Excel ファイルを解析し、ファイルデータにアクセスします。

    GlideExcelParser メソッドは、グローバルおよびスコープ対象のスクリプトで使用できます。sn_impex 名前空間識別子を使用して GlideExcelParser オブジェクトを作成します。

    GlideExcelParser - GlideExcelParser()

    GlideExcelParser のインスタンスを作成します。

    GlideExcelParser オブジェクトを作成するときは、API の名前空間識別子「sn_impex」を使用する必要があります。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    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 - close()

    入力ストリームへの接続を閉じて、ドキュメントをリリースします。

    表 : 2. パラメーター
    名前 タイプ 説明
    なし
    表 : 3. 返される内容
    タイプ 説明
    なし

    この例は、すべてのドキュメント管理が完了した後にパーサーを閉じる方法を示しています。

    // 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()

    解析されたドキュメントから列ヘッダーのリストを返します。

    表 : 4. パラメーター
    名前 タイプ 説明
    なし
    表 : 5. 返される内容
    タイプ 説明
    アレイ 解析済みドキュメントの列ヘッダーの文字列のアレイ。

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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()

    parse() メソッドが失敗した場合にエラーメッセージを返します。

    表 : 6. パラメーター
    名前 タイプ 説明
    なし
    表 : 7. 返される内容
    タイプ 説明
    文字列 エラーメッセージ。

    GlideExcelParser - getRow()

    現在の行の値とヘッダーを取得します。

    表 : 8. パラメーター
    名前 タイプ 説明
    なし
    表 : 9. 返される内容
    タイプ 説明
    オブジェクト 行ヘッダーはプロパティ名で、行の値はプロパティ値です。

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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()

    Excel ワークブック内のすべてのワークシート名のリストを取得します。

    表 : 10. パラメーター
    名前 タイプ 説明
    なし
    表 : 11. 返される内容
    タイプ 説明
    アレイ ワークブック内で左から右に配置されたワークシート名としての文字列のアレイ。結果には非表示としてマークされたワークシートが含まれます。

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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()

    スプレッドシートまたは CSV 添付ファイルからテーブルの列タイプと最大文字数を取得します。

    注:
    このメソッドは、スコープ対象のアプリケーションに制限されています。
    表 : 12. パラメーター
    名前 タイプ 説明
    なし
    表 : 13. 返される内容
    タイプ 説明
    オブジェクト 添付ファイルデータをキーが列名であるマップとして返します。値には、列のタイプと列の文字列の最大長が含まれます。getType() および getLength() メソッドを使用して戻り値にアクセスします。

    この例では、1、Meghan、1/1/85、1:00 AM、10.00%、224-432-8582、½ などの行データを含む、7 列のスプレッドシートの添付ファイルからデータを取得する方法を示します。

    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());
    }

    出力:

    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()

    次の行に移動します。

    表 : 14. パラメーター
    名前 タイプ 説明
    なし
    表 : 15. 返される内容
    タイプ 説明
    ブーリアン 次の行がある場合は true を返し、ない場合は false を返します。

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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)

    XLSX 形式の Excel ドキュメントを解析します。

    表 : 16. パラメーター
    名前 タイプ 説明
    inputStream GlideScriptableInputStream 入力ストリームとして提供される Excel ドキュメント。
    注:
    setSource() メソッドを使用して同じソースを複数回解析する場合は、この値を設定しないでください。
    表 : 17. 返される内容
    タイプ 説明
    ブーリアン 解析が成功したかどうかを示すフラグ。
    有効な値:
    • true:ドキュメントは正常に解析されました。
    • false:ドキュメントは正常に解析されませんでした。

    要求ペイロードの入力ストリームを使用して Excel ファイルが送信される、Scripted REST API スクリプトの例。

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

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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(数値 headerRowNumber)

    取得するヘッダー行の番号を設定します。

    表 : 18. パラメーター
    名前 タイプ 説明
    headerRowNumber 数値 取得するヘッダー行。
    表 : 19. 返される内容
    タイプ 説明
    なし

    GlideExcelParser - setNullToEmpty(ブーリアン empty)

    Excel セルが存在しない場合は、null ではなく空の値を返します。

    表 : 20. パラメーター
    名前 タイプ 説明
    empty ブーリアン true の場合、存在しないセルは空の値を返します。false の場合、存在しないセルは null を返します。
    表 : 21. 返される内容
    タイプ 説明
    なし

    GlideExcelParser - setSheetName(文字列 sheetName)

    取得するシートの名前を設定します。

    setSheetNumber()setSheetName() の両方が設定されている場合は、setSheetName() が使用されます。

    表 : 22. パラメーター
    名前 タイプ 説明
    sheetName 文字列 取得するシートの名前。
    表 : 23. 返される内容
    タイプ 説明
    なし

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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(数値 SheetNumber)

    取得する Excel シートの番号を設定します。

    setSheetNumber()setSheetName() の両方が設定されている場合は、setSheetNumber() は無視されます。

    表 : 24. パラメーター
    名前 タイプ 説明
    sheetNumber 数値 取得する Excel シート番号。
    表 : 25. 返される内容
    タイプ 説明
    なし

    次の例は、このメソッドを使用して、読み込む添付されたスプレッドシートワークブックのシート番号を指定する方法を示しています。

    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);

    出力:

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

    GlideExcelParser - setSource(InputStream inputStream)

    複数回解析したり、Excel ファイル内の各ワークシートを解析したりする入力ソースを定義します。

    表 : 26. パラメーター
    名前 タイプ 説明
    inputStream GlideScriptableInputStream 入力ストリームとして提供される Excel ドキュメント。
    表 : 27. 返される内容
    タイプ 説明
    なし

    次の例は、Excel ファイルの添付ファイルを複数回解析して列ヘッダーを取得し、各ワークシートの各行の値を出力する方法を示しています。結果には、Excel 添付ファイルの 3 つの個別のシートの列ヘッダーと値が表示されます。

    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());
    }

    出力:

    *** 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