■14672 / inTopicNo.20) |
Re[1]: 拡張子CSVで項目間をカンマで区切り書き出したい
|
□投稿者/ ONnoji -(2024/11/04(Mon) 16:32:54)
| 2024/11/04(Mon) 19:13:58 編集(投稿者)
老婆心ながら・・・
気になることがありましたので、お知らせいたしますが・・・
仕様書 個人住民税(特別徴収)CSVレイアウト仕様書(CSVフォーマット).xlsx
をダウンロードして、一部分を読んでみましたが・・・、
◇ ◇ ◇ ◇
【転載開始】
はじめに CSVファイルは、本仕様書に記載のルールに従い作成してください。 1.CSVファイルのデータ構造 (1)レコードについて CSVファイルは、カンマ(,)で区切られたテキストデータファイルで、1行のデータを「レコード」と呼び、システムで1行ずつ処理されることが前提となっています。 レコードは、ファイル内での位置と役割によって以下の4種類からなります。 @ファイルの始めであることを示すヘッダー・レコード Aシステムに実際に登録したいデータであるデータ・レコード Bデータの終わりであることを示すトレーラ・レコード Cファイルの終わりであることを示すエンド・レコード (2)設定するデータ 行の先頭から各シートの項目に応じたデータをNo1,No2,No3,No4,・・・・・・と項目間をカンマ(,)で区切って作成します。 以下に設定するCSVデータの例を記載しております。 各レコードに設定する値の詳細は、各レコード名のシートにそれぞれ記載しております。 なお、CSVデータの文字コードは必ずUTF-8にしてください。 レコードの行数 1行目(ヘッダーレコード) 2〜n行目(データ・レコード) ・ ・ n+1行目(トレーラー・レコード) 2.ファイルの保存形式 ・ファイル名は任意です。 ・ファイルの拡張子は「.csv」です。 ・文字コード形式はUTF-8です。(MicrosoftExcelやメモ帳では、標準の文字コードは、SJISとなりますのでご注意ください。)
【転載おわり】
◇ ◇ ◇ ◇
ここで気になるのは、最後の文字コード形式はUTF-8です。 ・・・・・・・・・・・・ ↑ というところです。
実は、桐10sでは CSV形式というのは、Unicode(ユニコード)が普及する前のレガシーなデータ形式として扱っていると思います。
それは、Unicode(ユニコード)に変換すると失われる文字があるからだと思われるのですが・・・
そういう理由からだと思われるのですが、
桐からコンマ区切りテキストデータ、つまり CSV( comma-separated values)を書き出そうとすると、シフトJIS で出力するんですよ。ガ〜ン。
詳しくは以下をご参考に
こちら ↓ 【桐 オンラインヘルプ】より https://www.kthree.co.jp/kihelp/index.html?page=menu/mtWriteCSV2&type=html
書き出し - CSV の項
[ノート] CSVファイルの文字コードはシフトJISで出力します。 シフトJISにない文字(Unicode固有の文字)は[環境設定]の[シフトJIS変換処理で使う置き換え文字]に置き換えて出力されますので、ご注意ください。
※桐sSL と 桐s2024LTでは、環境設定によって{ シフトJIS、UTF-8, UTF-8(BON付き), UTF-16LE, UTF-16BE }が書き出せるようです。 ※[書き出し CSV]コマンドも同様です。 ※[印字開始]/[印字]/[印字終了]コマンドでは、UTF-16 または シフトJIS のどちらかのようです。
p.s.
なお、返信をされる時には、
■引用文は、最小限に、お願いいたします
↑投稿ページの赤字で書いてありますので、
引用文は、最小限に、お願いいたしますね。
読み難くてしかたありません。(>_<)
p.p.s.
ちなみに、桐では[印字開始]/[印字]/[印字終了]コマンドでテキストファイルを出力することが出来ますが、
文字コードは、UTF-16 または シフトJIS のどちらかです。
ということで、何らかの方法で、UTF-8 に変換しなければならないハズですよ。
なお、
個人住民税(特別徴収)ファイルレイアウト定義書(地銀協フォーマット).xlsx
によると
ファイルレイアウトID UFL001 ファイルレイアウト名 個人住民税(特徴)ファイル(地銀協フォーマット)
ファイル仕様 文字コード SJISコード ・・・・・
改行コード 無し ファイル形式 固定長120バイト(1レコード) 括り文字 無し
とありますので、SJISコード、つまり シフトJIS だそうです。
ということで、固定長( 120桁:バイト )の形式の方が簡単だと思いますよ。
No 項目名 属性 桁数 byte 桁数不足時の処理 1 ヘッダー・レコード 120 2 データ区分 9 1 1 3 種別コード 9 2 2 0 右 4 使用コード 9 1 1 0 右 5 委託者コード 9 10 10 0 右 6 取引支店番号 9 3 3 0 右 7 納期限 9 6 6 0 右 8 納付月分 9 4 4 0 右 9 特別徴収義務者名 X 40 40 半角スペース 左 10 特別徴収義務者の所在地 X 50 50 半角スペース 左 11 ダミー X 3 3 半角スペース 左 12 データ・レコード 120 13 データ区分 9 1 1 14 市区町村コード 9 6 6 0 右 15 市区町村名 X 15 15 半角スペース 左 16 指定番号 X 15 15 半角スペース 左 17 移動の有無 9 1 1 0 右 18 給与税額(件数) 9 5 5 0 右 19 給与税額(金額) 9 9 9 0 右 20 退職税額(件数) 9 5 5 0 右 21 退職税額(金額) 9 9 9 0 右 22 合計税額(件数) 9 5 5 0 右 23 合計税額(金額) 9 9 9 0 右 24 退職明細(人員) 9 3 3 0 右 25 退職明細(支払金額) 9 10 10 0 右 26 退職明細(市区町村税) 9 9 9 0 右 27 退職明細(都道府県民税) 9 9 9 0 右 28 ダミー X 9 9 半角スぺース 左 29 トレーラー・レコード 120 30 データ区分 9 1 1 31 給与税額合計(件数) 9 7 7 0 右 32 給与税額合計(金額) 9 11 11 0 右 33 退職税額合計(件数) 9 7 7 0 右 34 退職税額合計(金額) 9 11 11 0 右 35 合計税額(件数) 9 7 7 0 右 36 合計税額(金額) 9 11 11 0 右 37 ダミー X 65 65 半角スペース 左 38 エンド・レコード 120 39 データ区分 9 1 1 40 ダミー X 119 119 半角スペース 左
|
|