戻る

Parquet ビューアー・変換

データ変換

読み込み中

ツールを読み込んでいます

ツールのコードは開いたときにのみ読み込まれます。

このツールの処理はすべてブラウザー内で行われ、入力内容はサーバーへ送信されません。

このツールについて

内容をアップロードせずに、小さなローカル Parquet ファイルを確認できます。同梱の hyparquet リーダーがブラウザーのワーカーで動作し、UNCOMPRESSED または SNAPPY の対応するフラットな列を読み込みます。物理型、論理型の注釈、null の許容と本ツールの表現を確認し、行をページ表示して両端を含む範囲を書き出します。64 ビット整数、固定小数、バイナリー値、時間単位の正確な値はスキーマで説明する文字列になり、通常の真偽値と対応する有限数は型を保ちます。非対応の列は理由と unsupported:null の表現を付けてスキーマに残します。行の値は明示的な null の代替値で、復号した元の null ではありません。対応列は引き続き確認できます。結果の解釈や書き出し前に警告を確認してください。リモートファイルの取得、第三者 CDN の利用、ファイル内容の永続保存は行いません。

主な用途

  • 上限内の分析データを別のツールに渡す前に、列名、null を許すフィールド、行数、物理型と論理型の違いと非対応列の警告を調べます。
  • 元のファイルを変更せず、連続するレコードを表計算で確認するために取り出し、ヘッダーと文字列の数式保護を有効にします。
  • null と空文字を区別し、大きな整数 ID、固定小数、タイムスタンプの単位を丸めない、スキーマ付き JSON サンプルを取得します。

使い方

  1. 1.ローカルの Parquet ファイルを 1 つ選んで読み込みます。検証後、スキーマ、行数、行グループを確認します。.parquet 拡張子だけでは有効なファイルと判断できません。非対応列の警告をすべて確認してください。その列はスキーマに残り、値は null の代替値になります。対応列は表示できます。非対応列の元の値が必要なら、完全なローカル Parquet ツールを使ってください。破損や上限超過は読み込みを失敗させ、部分結果を返しません。
  2. 2.前へ・次へで 25 行ずつ確認します。プレビューは先頭 12 列までで、セルは 500 文字を超えると省略表示します。全列はスキーマで確認し、null と型の表示も参照してください。ページ番号は表示用で、書き出す行の選択ではありません。
  3. 3.元のファイル順で、1 始まり・両端を含む開始行と終了行を入力し、CSV または JSON を選びます。0 行のファイルは 0–0 の空範囲で、スキーマまたはヘッダーだけを書き出します。有効な範囲の全列と完全な値が書き出され、プレビューの列非表示や省略には影響されません。表計算で確認する CSV は数式保護を有効に保ち、未保護 CSV は明示的に選んでください。キャンセル、リセット、ツールからの移動でメモリー内のファイルと結果を破棄するため、続ける場合はファイルを選び直します。

合成 Parquet ファイルによる実行可能な例

Unicode、null、基本型を保つ

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 5,
  "safe": true,
  "excerptColumns": [
    "name",
    "active",
    "int32_value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "name",
      "physicalType": "BYTE_ARRAY",
      "logicalType": "STRING",
      "representation": "text",
      "nullable": true,
      "supported": true
    },
    {
      "name": "active",
      "physicalType": "BOOLEAN",
      "logicalType": "NONE",
      "representation": "boolean",
      "nullable": true,
      "supported": true
    },
    {
      "name": "int32_value",
      "physicalType": "INT32",
      "logicalType": "NONE",
      "representation": "number",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 5
  },
  "rowsExcerpt": [
    {
      "name": "東京 · café 😀",
      "active": true,
      "int32_value": -2147483648
    },
    {
      "name": "",
      "active": false,
      "int32_value": 2147483647
    },
    {
      "name": "\\N",
      "active": null,
      "int32_value": 0
    },
    {
      "name": "=SUM(1,2)\r\n\"quoted\",value",
      "active": true,
      "int32_value": -1
    },
    {
      "name": null,
      "active": false,
      "int32_value": null
    }
  ]
}

合成ファイルは 14 列、5 行で、ここでは name、active、int32_value を抜粋しています。Unicode と空文字を保ち、null は false や数値ゼロと区別します。完全な JSON 出力には 14 個すべてのスキーマ項目と列を含みます。

Snappy 圧縮の v2 データページを読む

{
  "file": "mixed-snappy-v2.parquet",
  "format": "json",
  "start": 1,
  "end": 2,
  "safe": true,
  "excerptColumns": [
    "name",
    "int32_value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "name",
      "physicalType": "BYTE_ARRAY",
      "logicalType": "STRING",
      "representation": "text",
      "nullable": true,
      "supported": true
    },
    {
      "name": "int32_value",
      "physicalType": "INT32",
      "logicalType": "NONE",
      "representation": "number",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 2
  },
  "rowsExcerpt": [
    {
      "name": "東京 · café 😀",
      "int32_value": -2147483648
    },
    {
      "name": "",
      "int32_value": 2147483647
    }
  ]
}

独立したライターが作成したファイルで、SNAPPY、辞書値、データページ v2 を使用します。最初の 2 行の文字列と符号付き INT32 を保持します。excerptColumns は文書の抜粋指定で、書き出す列を選ぶ機能ではありません。

範囲の両端を含めて書き出す

{
  "file": "mixed-uncompressed-v1.parquet",
  "format": "json",
  "start": 2,
  "end": 3,
  "safe": true,
  "excerptColumns": [
    "name",
    "int32_value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "name",
      "physicalType": "BYTE_ARRAY",
      "logicalType": "STRING",
      "representation": "text",
      "nullable": true,
      "supported": true
    },
    {
      "name": "int32_value",
      "physicalType": "INT32",
      "logicalType": "NONE",
      "representation": "number",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 2,
    "end": 3
  },
  "rowsExcerpt": [
    {
      "name": "",
      "int32_value": 2147483647
    },
    {
      "name": "\\N",
      "int32_value": 0
    }
  ]
}

UNCOMPRESSED/PLAIN 版も同じレコードを含みます。start 2 と end 3 はファイル順の 2、3 行目を両方含みます。空文字と文字列のバックスラッシュ N は JSON で区別されます。例は 2 列だけですが、出力は全列です。

符号付き・符号なし 64 ビット整数を保つ

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 4,
  "safe": true,
  "excerptColumns": [
    "id",
    "uint64_value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "id",
      "physicalType": "INT64",
      "logicalType": "NONE",
      "representation": "integer:string",
      "nullable": true,
      "supported": true
    },
    {
      "name": "uint64_value",
      "physicalType": "INT64",
      "logicalType": "UINT_64",
      "representation": "integer:string",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 4
  },
  "rowsExcerpt": [
    {
      "id": "-9223372036854775808",
      "uint64_value": "18446744073709551615"
    },
    {
      "id": "9223372036854775807",
      "uint64_value": "9223372036854775808"
    },
    {
      "id": "9007199254740993",
      "uint64_value": "9007199254740993"
    },
    {
      "id": "-9007199254740993",
      "uint64_value": "0"
    }
  ]
}

INT64 と UINT64 はゼロも含めて正確な十進文字列です。2^53 を超える値と、符号付き・符号なし 64 ビットの端点を丸めません。スキーマが物理型、論理型、integer:string の表現を示します。

宣言された小数桁数を保つ

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 5,
  "safe": true,
  "excerptColumns": [
    "amount"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "amount",
      "physicalType": "FIXED_LEN_BYTE_ARRAY",
      "logicalType": "DECIMAL(30,6)",
      "representation": "decimal:string",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 5
  },
  "rowsExcerpt": [
    {
      "amount": "9007199254740993.123456"
    },
    {
      "amount": "-9007199254740993.000001"
    },
    {
      "amount": "0.000001"
    },
    {
      "amount": "0.000000"
    },
    {
      "amount": null
    }
  ]
}

DECIMAL(30,6) は固定小数の文字列です。0.000001 と 0.000000 は 6 桁の小数を保ち、大きな金額も全桁を保持し、null は null のままです。二進浮動小数の計算を挟みません。

時間の値を解釈する前に単位を見る

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 4,
  "safe": true,
  "excerptColumns": [
    "timestamp_us",
    "timestamp_ns",
    "date",
    "time_us"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "timestamp_us",
      "physicalType": "INT64",
      "logicalType": "TIMESTAMP(MICROS,UTC)",
      "representation": "timestamp:unit:string",
      "nullable": true,
      "supported": true
    },
    {
      "name": "timestamp_ns",
      "physicalType": "INT64",
      "logicalType": "TIMESTAMP(NANOS,local)",
      "representation": "timestamp:unit:string",
      "nullable": true,
      "supported": true
    },
    {
      "name": "date",
      "physicalType": "INT32",
      "logicalType": "DATE(days since 1970-01-01)",
      "representation": "date:days:string",
      "nullable": true,
      "supported": true
    },
    {
      "name": "time_us",
      "physicalType": "INT64",
      "logicalType": "TIME(MICROS,UTC)",
      "representation": "time:unit:string",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 4
  },
  "rowsExcerpt": [
    {
      "timestamp_us": "-1",
      "timestamp_ns": "-1",
      "date": "-719162",
      "time_us": "0"
    },
    {
      "timestamp_us": "-1000001",
      "timestamp_ns": "-1000000001",
      "date": "-1",
      "time_us": "1"
    },
    {
      "timestamp_us": "0",
      "timestamp_ns": "0",
      "date": "0",
      "time_us": "12345678901"
    },
    {
      "timestamp_us": "9007199254740993",
      "timestamp_ns": "9007199254740993",
      "date": "20000",
      "time_us": "86399999999"
    }
  ]
}

-1 は Date に変換せず、正確な単位数として保持します。timestamp_us は UTC 調整ありのマイクロ秒、timestamp_ns はローカル意味論のナノ秒です。DATE は 1970-01-01 からの日数、TIME は宣言単位です。完全なスキーマにこれらの表示が残ります。

空のバイナリーと null を区別する

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 5,
  "safe": true,
  "excerptColumns": [
    "binary",
    "fixed_binary"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "binary",
      "physicalType": "BYTE_ARRAY",
      "logicalType": "NONE",
      "representation": "binary:hex",
      "nullable": true,
      "supported": true
    },
    {
      "name": "fixed_binary",
      "physicalType": "FIXED_LEN_BYTE_ARRAY",
      "logicalType": "NONE",
      "representation": "binary:hex",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 5
  },
  "rowsExcerpt": [
    {
      "binary": "0x00ff80",
      "fixed_binary": "0x00ff8001"
    },
    {
      "binary": "0x",
      "fixed_binary": "0x00000000"
    },
    {
      "binary": "0x000102030405060708090a0b0c0d0e0f",
      "fixed_binary": "0x41424344"
    },
    {
      "binary": "0x5c4e",
      "fixed_binary": "0xfffefdfc"
    },
    {
      "binary": null,
      "fixed_binary": null
    }
  ]
}

バイナリーは 0x 付きの小文字 16 進文字列です。空のバイト列は 0x、null は null です。確認用の表現であり、任意のバイトを UTF-8 として復号するわけではありません。

特殊な浮動小数を保持する

{
  "file": "mixed-snappy-v1.parquet",
  "format": "json",
  "start": 1,
  "end": 5,
  "safe": true,
  "excerptColumns": [
    "float64_value",
    "float32_value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "float64_value",
      "physicalType": "DOUBLE",
      "logicalType": "NONE",
      "representation": "float:number-or-special-string",
      "nullable": true,
      "supported": true
    },
    {
      "name": "float32_value",
      "physicalType": "FLOAT",
      "logicalType": "NONE",
      "representation": "float:number-or-special-string",
      "nullable": true,
      "supported": true
    }
  ],
  "range": {
    "start": 1,
    "end": 5
  },
  "rowsExcerpt": [
    {
      "float64_value": "NaN",
      "float32_value": "NaN"
    },
    {
      "float64_value": "+Infinity",
      "float32_value": "+Infinity"
    },
    {
      "float64_value": "-Infinity",
      "float32_value": "-Infinity"
    },
    {
      "float64_value": "-0",
      "float32_value": "-0"
    },
    {
      "float64_value": 1.25,
      "float32_value": 1.5
    }
  ]
}

NaN、正負の無限大、負のゼロはスキーマで説明する明示的な文字列です。有限値 1.25、1.5 は JSON 数値のままです。JSON.stringify が非有限値を黙って null にしたり、負のゼロを失ったりすることを避けます。

複数行の数式風文字列を保護する

{
  "file": "mixed-snappy-v1.parquet",
  "format": "csv",
  "start": 4,
  "end": 4,
  "safe": true,
  "excerptColumns": [
    "name",
    "int32_value"
  ]
}
{
  "csvRecordsExcerpt": [
    [
      "name",
      "int32_value"
    ],
    [
      "'=SUM(1,2)\r\n\"quoted\",value",
      "-1"
    ]
  ]
}

通常の CSV 解析後の一部の列を示しており、14 列の完全な CSV ではありません。数式保護で危険な文字列の先頭にアポストロフィを付けます。値内のカンマ、引用符、CRLF は保持します。数値 INT32 の -1 はそのままですが、危険な文字列で表す正確な値には保護が付く場合があります。

未保護 CSV の null とバックスラッシュを戻す

{
  "file": "mixed-snappy-v1.parquet",
  "format": "csv",
  "start": 2,
  "end": 5,
  "safe": false,
  "excerptColumns": [
    "name",
    "active"
  ]
}
{
  "csvRecordsExcerpt": [
    [
      "name",
      "active"
    ],
    [
      "",
      "false"
    ],
    [
      "\\\\N",
      "\\N"
    ],
    [
      "=SUM(1,2)\r\n\"quoted\",value",
      "true"
    ],
    [
      "\\N",
      "false"
    ]
  ]
}

CSV 解析後の値を示しています。元の文字列バックスラッシュ N は先頭が 2 つになり、本当の null は 1 つのバックスラッシュ N です。空文字は空のままです。未保護モードは数式風文字列を残すため表計算では危険な場合がありますが、null とバックスラッシュの規則は適用します。

入れ子の代替値と対応列を同時に保つ

{
  "file": "unsupported-struct.parquet",
  "format": "json",
  "start": 1,
  "end": 2,
  "safe": true,
  "excerptColumns": [
    "flat_id",
    "nested"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "flat_id",
      "physicalType": "INT32",
      "logicalType": "NONE",
      "representation": "number",
      "nullable": true,
      "supported": true
    },
    {
      "name": "nested",
      "physicalType": "GROUP",
      "logicalType": "NONE",
      "representation": "unsupported:null",
      "nullable": true,
      "supported": false,
      "reason": "nested"
    }
  ],
  "range": {
    "start": 1,
    "end": 2
  },
  "rowsExcerpt": [
    {
      "flat_id": 1,
      "nested": null
    },
    {
      "flat_id": 2,
      "nested": null
    }
  ]
}

flat_id は 1、2 のままです。入れ子は supported:false、reason nested、unsupported:null を持つ GROUP スキーマ項目として残ります。元の入れ子の値が異なっていても、例の null はどちらも代替値です。JSON のスキーマで復号した nullable 列と区別します。

非対応の圧縮方式を明示する

{
  "file": "unsupported-gzip.parquet",
  "format": "json",
  "start": 1,
  "end": 3,
  "safe": true,
  "excerptColumns": [
    "value"
  ]
}
{
  "schemaExcerpt": [
    {
      "name": "value",
      "physicalType": "INT32",
      "logicalType": "NONE",
      "representation": "unsupported:null",
      "nullable": true,
      "supported": false,
      "reason": "codec"
    }
  ],
  "range": {
    "start": 1,
    "end": 3
  },
  "rowsExcerpt": [
    {
      "value": null
    },
    {
      "value": null
    },
    {
      "value": null
    }
  ]
}

このビューアーは GZIP を復号しません。value 列は reason codec とともにスキーマに残り、全行を null の代替値にします。元のセルの値を表す結果ではなく、復元には完全な Parquet リーダーが必要です。CSV 単独ではこの説明が失われます。

Parquet 確認時のよくある誤り

  • すべての .parquet ファイルの型・符号化・圧縮が対応済みと考える、または非対応列の代替値を元の null と取り違える。
  • スキーマが INT64 や DECIMAL と説明する文字列を、丸めが起きる浮動小数に変換する。
  • 単位と UTC 調整フラグを確認せず、タイムスタンプの単位数をミリ秒と解釈する。
  • プレビューの省略や非表示の列を、成功した書き出しのデータ欠落と取り違える。
  • 0 始まりの行番号を使う、または終了行が書き出しに含まれないと考える。
  • CSV の \N を通常の文字列と読む、またはエスケープ文字列に追加された先頭のバックスラッシュを戻し忘れる。
  • キャンセル、リセット、ファイル変更の後にも古いワーカーセッションが残ると期待する。
  • 信頼できない未保護 CSV を表計算で開く、または二重引用符だけで数式実行を防げると思う。

制限と注意事項

  • 入力は 1 ファイル、8 MiB、10,000 行、128 列、200,000 データセルまでです。対応する復号済みデータページ合計は 32 MiB までです。テキストセルと元のバイナリーセルは各 256 KiB までで、バイナリーの 16 進文字列は 512 KiB と 2 文字の接頭辞までになります。フッターは 1 MiB、メタデータは 256 行グループ、対応データは 8,192 ページまで、列名は UTF-8 で 128 バイトまでです。各書き出しは 8 MiB までです。読み込み、ページ表示、書き出しには 10 秒の期限があります。上限超過は操作を失敗させ、部分ファイルや短縮した書き出しを黙って返しません。プレビューは 25 行ずつ、先頭 12 列、セル当たり 500 文字までです。ワーカー、サイズ検査、キャンセルは負荷を抑える手段であり、ブラウザーの総メモリーの厳密な上限や、悪意ある入力による資源枯渇を防ぐ保証ではありません。
  • 復号できる範囲はフラットな必須・任意の基本型列、データページ v1/v2、PLAIN または辞書による値の符号化、UNCOMPRESSED または SNAPPY 圧縮です。対応する物理値は、互換性のある論理型注釈を持つ BOOLEAN、INT32、INT64、FLOAT、DOUBLE、BYTE_ARRAY、FIXED_LEN_BYTE_ARRAY です。入れ子のグループ、LIST/MAP/反復列、INT96、未知の論理型、他の値の符号化と圧縮は、非対応として理由を示すスキーマと null の代替値を保持し、対応列は読み込みます。代替値は復号した元の null ではなく、元の値も復元できません。暗号化ファイル、外部の列ファイル、破損、リモート URL は受け付けません。完全な Parquet 仕様や上流ライブラリーより狭い対応範囲です。 既知の物理型と論理型の不正な組み合わせは検証に失敗します。非対応列のペイロードは読み飛ばし、展開や完全性検証をしません。対応列を読めても、元ファイルの全バイトが有効とは限りません。
  • INT64 と UINT64 は JavaScript の数値に安全に収まる場合も十進文字列です。DECIMAL は宣言された小数桁数を保つ正確な固定小数文字列、バイナリーは 0x 付きの 16 進文字列です。DATE、TIME、TIMESTAMP は、宣言された日または時間単位の正確な整数文字列を保ちます。論理型の単位と UTC 調整フラグを確認してください。整形済みの日時やタイムゾーン変換済みの JavaScript Date ではありません。有限の浮動小数は数値を保ち、NaN、+Infinity、-Infinity、負のゼロはスキーマで説明する明示的な文字列になります。非対応の型はスキーマに明示し、null の代替値で表します。null の解釈前に supported と reason を確認してください。
  • JSON は schema、選択した range、行オブジェクトの rows を含む形式です。スキーマには各列の name、physicalType、logicalType、representation、nullable、supported、reason を記録します。対応列の元の null は JSON null、空文字は空文字列のまま、正確な値は規定の文字列表現を保ちます。非対応列の representation は unsupported:null、行は null の代替値です。スキーマに理由が残るため、元の null と解釈しないでください。確認しやすい出力形式であり、Parquet の再エンコードや、別アプリで元の全メタデータを復元する保証ではありません。行範囲は 1 始まりで両端を含む連続範囲です。フィルター、並べ替え、任意行の選択、SQL クエリではありません。 0 行のファイルもスキーマを表示し、start 0 / end 0 の空範囲だけを許可します。rows [] を持つ JSON またはヘッダーのみの CSV を出力します。
  • CSV は UTF-8、カンマ区切り、CRLF 改行で、ヘッダーと null 以外の値を引用符で囲みます。null は引用符なしの \N です。バックスラッシュで始まる null 以外の文字列値には、先頭にもう 1 つバックスラッシュを付けます。文字列の \N は CSV 解析後に \\N になります。復元時は完全一致する \N だけを null にし、他の値で先頭が 2 つのバックスラッシュなら 1 つ除きます。CSV に Parquet スキーマや非対応列の理由は含まれず、代替 null と元の null を CSV 単独で区別できません。重要な場合は JSON を使ってください。既定の数式保護は危険なヘッダーと文字列表現の値の前にアポストロフィを付け(負の INT64、固定小数、時間単位の文字列も含みます)、意図的に文字列を変更します。未保護 CSV でも null とバックスラッシュの規則は残ります。未保護 CSV は数式実行や表計算の型変換を招く場合があります。ファイル名は parquet-rows.csv または parquet-rows.json です。プレビューの省略は成功した書き出しを短縮しません。キャンセル、タイムアウト、ワーカー失敗、ファイル変更、リセット、ツールからの移動でセッションを解放しますが、ダウンロード済みのファイルは端末に残ります。

よくある質問

大きな整数、小数、タイムスタンプが文字列になるのはなぜですか?

通常の JavaScript 数値や Date に変換すると、整数の丸め、小数桁数の変更、ミリ秒未満の精度損失が起こり得ます。本ツールは INT64/UINT64 を十進文字列、DECIMAL を固定小数文字列、時刻の値を正確な単位数として保持します。JSON のスキーマが単位と UTC 調整を含む解釈方法を示し、表示タイムゾーンは推測しません。

CSV で null、空文字、文字列の \N を区別できますか?

null は \N という値です。バックスラッシュで始まる実際の文字列には先頭にもう 1 つ付けるため、文字列の \N は CSV 解析後に \\N となり、空文字は空のままです。完全一致する \N を null にし、それ以外で先頭が 2 つのバックスラッシュなら 1 つ除いて復元します。ただし CSV には型情報と、非対応列の null 代替値の理由は含まれません。その違いを保持するには JSON 形式を使ってください。

非対応の Parquet 列はどうなりますか?

列は supported:false、理由、representation unsupported:null を付けてスキーマに残ります。表示・書き出しは null の代替値となり、対応列は読み込めます。代替値を元の null と解釈しないでください。入れ子、INT96、非対応の論理型・符号化・圧縮でこの動作になります。メタデータ破損、対応データの不正、資源上限超過は読み込みを失敗させます。非対応列の元の値には完全な Parquet ツールを使ってください。

範囲の書き出しは表示中のプレビューだけですか?

いいえ。開始行と終了行は元のファイル順の 1 始まりで、両端を含みます。成功した書き出しは、その範囲の全列と完全な値を含み、表示中のページ、12 列の表示上限、500 文字の省略に左右されません。不正な範囲や大きすぎる出力は拒否します。空ファイルは特別な 0–0 の範囲だけで、データ行なしのスキーマまたはヘッダーを書き出します。キャンセルやリセットで読み込み済みセッションを破棄するため、ファイルを読み直す必要があります。

関連ツール