作ったものとか » Softs

csv2xlsx

2023-01-05 21:23:31

CSVファイルをXLSXファイルに変換するツール

ダウンロード

ダウンロード

用途

Excel で CSV ファイルを開いてしまうと、Excel が CSV の値を勝手に解釈して、値やセルの表示形式を変換してしまいます。

例えば、0 から始まるコードが数値に変換されたり、“1-2” が “1月2日” に変換されたりします。 そのまま保存してしまうと、もともとの値が壊れる・意図していない形式で表示される、という弊害があるわけです。

csv2xlsx を使うと、基本は自動認識をしつつも、あまり無茶苦茶な変換をせずに Excel ブックに変換できます。

なお、既に同名のツールがあります。 ですが、全て文字列になる挙動が気になったことなどもあり、個人的にはもう少し使い勝手にこだわりたかったので、新たに自作することにしました。

主な機能

使い方 (というか、ヘルプ)

csv2xlsx - CSV to XLSX file converter

Options:
  -o, --output FILENAME
  -d                                   a value delimiter (default: ,)
  --header                             -1 when no header (default: 1)
  -g, --guess                          guess cell type by --columns or CSV values (default: true)
    --no-guess
  --df, --date                         global input format of date over columns (default: ymd)
  --tf, --time                         global input format of time over columns (default: hms)
  --dtf, --datetime                    global input format of datetime over columns (default: 20060102 150405)
  --dxf, --date-xlsx                   global output format of date over columns (default: yyyy/mm/dd)
  --txf, --time-xlsx                   global output format of time over columns (default: hh:mm:ss)
  --dtxf, --datetime-xlsx              global output format of datetime over columns (default: yyyy/mm/dd hh:mm:ss)
  --nxf, --number-xlsx
  --cols, --columns                    [SHEET!]COLUMN_NAME:TYPE[(INPUT_FORMAT[->OUTPUT_FORMAT])],...
  --name, --pipelined-name SHEET_NAME  the name of a pipelined CSV (default: Sheet1)

Usage:
  csv2xlsx [options] -o FILENAME CSV_FILENAME [CSV_FILENAME...]

  --columns [SHEET!]COLUMN_NAME:TYPE[(INPUT_FORMAT[->OUTPUT_FORMAT])]
    SHEET = CSV_FILENAME
    TYPE = text|number|date|time|datetime|bool
    INPUT_FORMAT
      date: yyyy, yy, y, 2006, 06, mm, m, 01, 1, dd, d, 02, 2
      time: hh, h, 15, 3, mm, m, 04, 4, ss, s, 05, 5
      datetime: 2006, 06, 01, 1, 02, 2, 15, 3, 04, 4, 05, 5
    Examples:
      csv2xlsx -o dest.xlsx src.csv
      csv2xlsx -o dest.xlsx --columns num_*:number src.csv
      csv2xlsx -o dest.xlsx --columns num_*:number(->#\,##0.00) src.csv

Help sub commands:
  help     csv2xlsx help subcommnad subsubcommand
  version  show version

未実装 (今後やりたいこと)

メモ。順不同。