Excel → テーブル (変換ツール)
サマリー
Microsoft Excel ファイルをテーブルに変換します。
使用法
Excel ワークブック (.xlsx) 形式および Excel 5.0/95 ワークブック (.xls) 形式を入力形式として使用できます。
出力のフィールドのデータ タイプは、入力列全体の値とセルの書式設定、出力テーブルの制限に基づきます。 出力フィールドのデータ タイプには、double、long integer、short integer、big integer、text、date、date only、time only などがあります。
日付を含むセルは、date only、time only、date (時刻と日付の両方が入力されている場合) に分類されます。
数値セルは、値に小数が含まれる場合は double として分類されます。それ以外の場合は、値の大きさに応じて long integer、short integer (.xlsx)、または big integer として分類されます。
出力テーブル タイプがフィールド タイプをサポートしていない場合は、フィールド タイプは同等のサポート対象のフィールド タイプに設定されます。 この場合、big integer フィールド タイプの代わりに double フィールド タイプが使用され、date only フィールド タイプまたは time only フィールド タイプの代わりに date フィールド タイプが使用されます。
入力列に複数のデータまたは書式設定のタイプがある場合、出力フィールドのタイプはテキストになります。
入力 Excel セル内の値 "#N/A" は NULL に変換されます。 出力テーブル形式 (dBASE テーブルなど) が NULL に対応していない場合は、別の値が使用されます (整数フィールドの場合は 0、テキスト フィールドの場合は空の文字列)。
パラメーター
ラベル
説明
データ タイプ
入力 Excel ファイル
変換される Excel ファイル。
File
出力テーブル
出力テーブル。
Table
シートまたは指定範囲
(オプション)
インポートされる Excel ファイル内の特定のシートまたは指定範囲の名前。 指定しない場合、ワークブックの最初のシートが使用されます。
指定範囲は .xlsx ファイルでのみサポートされます。 1 つの範囲を持つ指定範囲のみがサポートされます (Sheet!A1:B5 など)。複数の範囲を持つ指定範囲はサポートされません (Sheet!A1:B5,Sheet!D1:D5 など)。
String
フィールド名として使用する行
(オプション)
フィールド名として使用される値が含まれている Excel シート内の行。 デフォルト値は 1 です。
指定された行は、レコードを出力テーブルに変換する処理でスキップされます。
シートまたは指定範囲 パラメーターの値が指定範囲である場合、このパラメーターの値は指定範囲の最小行に設定されます。 さらに、この値は、指定範囲の最小行と最大行に制限されます。
どの行の値もフィールド名として使用しないようにするには、このパラメーターを 0 に設定します。この場合には、出力フィールド名として列の文字が使用されます (例: COL_A、COL_B、COL_C など)。
特定の列に含まれるセルが空の場合は、列の文字に基づいて出力フィールド名が決定されます。 たとえば、3 つの入力列があり、列 A、B、および C で行の値がそれぞれ "city"、""、および "country" の場合、出力テーブルのフィールド名はそれぞれ city、COL_B、および country になります。
Long
セル範囲
(オプション)
セル範囲。 指定範囲が選択されている場合、このパラメーターは無効になります。
セル範囲が指定されていない場合、指定されたシートの開始セルと終了セルが使用されます。
セルは、行と列が交差する部分です。 列は文字 (A、B、C、D) で識別され、行は数字 (1、2、3、4) で識別されます。 各セルのアドレスは、その列と行に基づいて決定されます。 たとえば、セル B9 は列 B と行 9 の交差部分になります。
セル範囲の四角形を定義するには、左上のセルと右下のセルをコロン (:) で区切って指定します。 セル範囲はすべての値を含む範囲であり、たとえば、範囲 A2:C10 には、列 A ~ C のすべての値と行 2 ~ 10 のすべての値が含まれます。
出力フィールド名は、セル範囲内に指定された行に関係なく、行 1 のセル値から取得されます。 たとえば、指定されたセル範囲が B2:D10 の場合は、セル B1、C1、および D1 の値に基づいてフィールド名が決定されます。
有効なセル範囲の例を次に示します。
A2:C10—列 A ~ C に含まれる値と行 2 ~ 10 に含まれる値
B3:B40—列 B の値と行 3 ~ 40 に含まれる値
D5:X5—列 D ~ X に含まれる値と行 5 の値
E200:ALM20000—列 E ~ ALM (1000 番目の列) に含まれる値と行 200 ~ 20000 に含まれる値
無効なセル範囲の例を次に示します。
A20:C10—最初のセルを 2 番目のセルよりも下にする (2 番目のセルよりも大きい行番号にする) ことはできません。
Z3:B5—2 番目のセルを最初のセルの左に配置する (最初のセルよりも前の列の文字にする) ことはできません。
A5:G—どちらのセルにも有効なセル ID (文字と数字) が必要です。
このパラメーターは、シートまたは指定範囲 パラメーターの値がシートの場合にのみ有効です。
String
arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
名前
説明
データ タイプ
Input_Excel_File
変換される Excel ファイル。
File
Output_Table
出力テーブル。
Table
Sheet
(オプション)
インポートされる Excel ファイル内の特定のシートまたは指定範囲の名前。 指定しない場合、ワークブックの最初のシートが使用されます。
指定範囲は .xlsx ファイルでのみサポートされます。 1 つの範囲を持つ指定範囲のみがサポートされます (Sheet!A1:B5 など)。複数の範囲を持つ指定範囲はサポートされません (Sheet!A1:B5,Sheet!D1:D5 など)。
String
field_names_row
(オプション)
フィールド名として使用される値が含まれている Excel シート内の行。 デフォルト値は 1 です。
指定された行は、レコードを出力テーブルに変換する処理でスキップされます。
パラメーター Sheet の値が指定範囲である場合、このパラメーターの値は指定範囲の最小行に設定されます。 さらに、この値は、指定範囲の最小行と最大行に制限されます。
どの行の値もフィールド名として使用しないようにするには、このパラメーターを 0 に設定します。この場合には、出力フィールド名として列の文字が使用されます (例: COL_A、COL_B、COL_C など)。
特定の列に含まれるセルが空の場合は、列の文字に基づいて出力フィールド名が決定されます。 たとえば、3 つの入力列があり、列 A、B、および C で行の値がそれぞれ "city"、""、および "country" の場合、出力テーブルのフィールド名はそれぞれ city、COL_B、および country になります。
Long
cell_range
(オプション)
セル範囲。 指定範囲が選択されている場合、このパラメーターは無効になります。
セル範囲が指定されていない場合、指定されたシートの開始セルと終了セルが使用されます。
セルは、行と列が交差する部分です。 列は文字 (A、B、C、D) で識別され、行は数字 (1、2、3、4) で識別されます。 各セルのアドレスは、その列と行に基づいて決定されます。 たとえば、セル B9 は列 B と行 9 の交差部分になります。
セル範囲の四角形を定義するには、左上のセルと右下のセルをコロン (:) で区切って指定します。 セル範囲はすべての値を含む範囲であり、たとえば、範囲 A2:C10 には、列 A ~ C のすべての値と行 2 ~ 10 のすべての値が含まれます。
出力フィールド名は、セル範囲内に指定された行に関係なく、行 1 のセル値から取得されます。 たとえば、指定されたセル範囲が B2:D10 の場合は、セル B1、C1、および D1 の値に基づいてフィールド名が決定されます。
有効なセル範囲の例を次に示します。
A2:C10—列 A ~ C に含まれる値と行 2 ~ 10 に含まれる値
B3:B40—列 B の値と行 3 ~ 40 に含まれる値
D5:X5—列 D ~ X に含まれる値と行 5 の値
E200:ALM20000—列 E ~ ALM (1000 番目の列) に含まれる値と行 200 ~ 20000 に含まれる値
無効なセル範囲の例を次に示します。
A20:C10—最初のセルを 2 番目のセルよりも下にする (2 番目のセルよりも大きい行番号にする) ことはできません。
Z3:B5—2 番目のセルを最初のセルの左に配置する (最初のセルよりも前の列の文字にする) ことはできません。
A5:G—どちらのセルにも有効なセル ID (文字と数字) が必要です。
このパラメーターは、Sheet パラメーターの値がシートの場合にのみ有効です。
String
コードのサンプル
ExcelToTable の例 (Python ウィンドウ)
次の Python ウィンドウ スクリプトは、イミディエイト モードで ExcelToTable 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "c:/data"
arcpy.conversion.ExcelToTable("data.xls", "outgdb.gdb", "Sheet1")
ExcelToTable の例 2 (スタンドアロン スクリプト)
Excel ファイル内の各シートをジオデータベース内の個々のテーブルにインポートします。
import os
import xlrd
import openpyxl
import arcpy
def importallsheets(in_excel, out_gdb):
if in_excel.endswith(".xlsx"):
workbook = openpyxl.load_workbook(in_excel)
sheets = workbook.sheetnames
elif in_excel.endswith(".xls"):
workbook = xlrd.open_workbook(in_excel)
sheets = [sheet.name for sheet in workbook.sheets()]
else:
print("An Excel Workbook of format .xls or .xlsx is required.")
return
print('{} sheets found: {}'.format(len(sheets), ','.join(sheets)))
for sheet in sheets:
# The out_table is based on the input Excel file name
# an underscore (_) separator followed by the sheet name
out_table = os.path.join(
out_gdb,
arcpy.ValidateTableName(
"{0}_{1}".format(os.path.basename(in_excel), sheet),
out_gdb))
print('Converting {} to {}'.format(sheet, out_table))
# Perform the conversion
arcpy.conversion.ExcelToTable(in_excel, out_table, sheet)
if __name__ == '__main__':
importallsheets('c:/data/data.xls',
'c:/data/outgdb.gdb')
環境
現在のワークスペース , スクラッチ ワークスペース , 出力データのコンフィグレーション キーワード
ライセンス情報
Basic: はい
Standard: はい
Advanced: はい