概要
Microsoft Excel ファイルをテーブルに変換します。
使用法
Excel ワークブック (*.xlsx) 形式および Microsoft Excel 5.0/95 ワークブック (*.xls) 形式を入力形式として使用できます。
出力フィールドのデータ タイプは、入力列内の値とセルの書式設定に基づきます。出力フィールドのデータ タイプには、倍精度浮動小数点数、長整数、テキスト、日付などがあります。入力列に複数のデータまたは書式設定のタイプがある場合、出力フィールドのタイプはテキストになります。
入力 Excel セル内の値 "#N/A" は NULL に変換されます。出力テーブル形式 (dBASE テーブルなど) が NULL に対応していない場合は、別の値が使用されます (整数フィールドの場合は 0、テキスト フィールドの場合は空の文字列)。
構文
arcpy.conversion.ExcelToTable(Input_Excel_File, Output_Table, {Sheet}, {field_names_row}, {cell_range})
パラメーター | 説明 | データ タイプ |
Input_Excel_File | 変換する Microsoft Excel。 | File |
Output_Table | 出力テーブル。 | Table |
Sheet (オプション) | インポートする Excel ファイル内の特定のシートの名前。指定しない場合、ワークブックの最初のシートが使用されます。 | String |
field_names_row (オプション) | フィールド名として使用する値を含む Excel シート内の行。デフォルト値は 1 です。 指定された行は、レコードを出力テーブルに変換する処理でスキップされます。 どの行の値もフィールド名として使用しないようにするには、このパラメーターを 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 の値に基づいてフィールド名が決定されます。 有効なセル範囲の例を次に示します。
無効なセル範囲の例を次に示します。
| String |
コードのサンプル
次の Python ウィンドウ スクリプトは、イミディエイト モードで ExcelToTable 関数を使用する方法を示しています。
import arcpy
arcpy.env.workspace = "c:/data"
arcpy.ExcelToTable_conversion("data.xls", "outgdb.gdb", "Sheet1")
Microsoft Excel ファイル内の各シートをジオデータベース内の個々のテーブルにインポートします。
import os
import xlrd
import arcpy
def importallsheets(in_excel, out_gdb):
workbook = xlrd.open_workbook(in_excel)
sheets = [sheet.name for sheet in workbook.sheets()]
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.ExcelToTable_conversion(in_excel, out_table, sheet)
if __name__ == '__main__':
importallsheets('c:/data/data.xls',
'c:/data/outgdb.gdb')
ライセンス情報
- Basic: はい
- Standard: はい
- Advanced: はい