Giter Club home page Giter Club logo

csv-plus's Introduction

csv+

Project setup

yarn install

Compiles and hot-reloads for development

yarn run electron:serve

Compiles and minifies for production

yarn run electron:build

Run your unit tests (not yet)

yarn test:unit

Run your end-to-end tests (not yet)

yarn test:e2e

Lints and fixes files

yarn lint

Customize configuration

See Configuration Reference.

csv-plus's People

Contributors

ayumi306 avatar plusone-masaki avatar taisukef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

csv-plus's Issues

FYI : Windows のネイティブ環境で yarn install が コケる

c:\workspace\csv-plus>yarn install
yarn install v1.22.17
[1/4] Resolving packages...
[2/4] Fetching packages...
[3/4] Linking dependencies...
warning " > @vue/[email protected]" has incorrect peer dependency "eslint@>= 1.6.0 < 7.0.0".
warning "@vue/cli-plugin-eslint > [email protected]" has incorrect peer dependency "eslint@>=1.6.0 <7.0.0".
warning "@vue/cli-plugin-unit-jest > [email protected]" has incorrect peer dependency "vue@^2.x".
warning "@vue/cli-plugin-unit-jest > [email protected]" has unmet peer dependency "vue-template-compiler@^2.x".
warning " > @vue/[email protected]" has incorrect peer dependency "[email protected]".
warning "@vue/eslint-config-standard > [email protected]" has unmet peer dependency "webpack@>=1.11.0".
warning " > @vue/[email protected]" has incorrect peer dependency "eslint-plugin-vue@^8.0.1".
warning " > [email protected]" has unmet peer dependency "webpack@^4.36.0 || ^5.0.0".
warning " > [email protected]" has unmet peer dependency "@babel/[email protected]".
warning " > [email protected]" has unmet peer dependency "babel-jest@>= 24 < 27".
warning " > [email protected]" has unmet peer dependency "jest@>= 24 < 27 ".
warning "vue-jest > [email protected]" has unmet peer dependency "jest@>=24 <25".
[4/4] Building fresh packages...
[6/9] ⠠ electron
[-/9] ⠠ waiting...
[7/9] ⠠ deasync
[-/9] ⠠ waiting...
error c:\workspace\csv-plus\node_modules\deasync: Command failed.
Exit code: 1
Command: node ./build.js
Arguments:
Directory: c:\workspace\csv-plus\node_modules\deasync
Output:
c:\workspace\csv-plus\node_modules\deasync>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "" rebuild )
gyp info it worked if it ends with ok
gyp info using [email protected]
gyp info using [email protected] | win32 | x64
gyp ERR! find Python
gyp ERR! find Python Python is not set from command line or npm configuration
gyp ERR! find Python Python is not set from environment variable PYTHON
gyp ERR! find Python checking if "python3" can be used
gyp ERR! find Python - "python3" is not in PATH or produced an error
gyp ERR! find Python checking if "python" can be used
gyp ERR! find Python - "python" is not in PATH or produced an error
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python39\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python39\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python39\python.exe
gyp ERR! find Python - "C:\Program Files\Python39\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python39-32\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python39-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python39-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python39-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python38\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python38\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python38\python.exe
gyp ERR! find Python - "C:\Program Files\Python38\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python38-32\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python38-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python38-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python38-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python37\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python37\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python37\python.exe
gyp ERR! find Python - "C:\Program Files\Python37\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python37-32\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python37-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python37-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python37-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python36\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python36\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python36\python.exe
gyp ERR! find Python - "C:\Program Files\Python36\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Users\dell\AppData\Local\Programs\Python\Python36-32\python.exe
gyp ERR! find Python - "C:\Users\dell\AppData\Local\Programs\Python\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files\Python36-32\python.exe
gyp ERR! find Python - "C:\Program Files\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if Python is C:\Program Files (x86)\Python36-32\python.exe
gyp ERR! find Python - "C:\Program Files (x86)\Python36-32\python.exe" could not be run
gyp ERR! find Python checking if the py launcher can be used to find Python 3
gyp ERR! find Python - "py.exe" is not in PATH or produced an error
gyp ERR! find Python
gyp ERR! find Python **********************************************************
gyp ERR! find Python You need to install the latest version of Python.
gyp ERR! find Python Node-gyp should be able to find and use Python. If not,
gyp ERR! find Python you can try one of the following options:
gyp ERR! find Python - Use the switch --python="C:\Path\To\python.exe"
gyp ERR! find Python   (accepted by both node-gyp and npm)
gyp ERR! find Python - Set the environment variable PYTHON
gyp ERR! find Python - Set the npm configuration variable python:
gyp ERR! find Python   npm config set python "C:\Path\To\python.exe"
gyp ERR! find Python For more information consult the documentation at:
gyp ERR! find Python https://github.com/nodejs/node-gyp#installation
gyp ERR! find Python **********************************************************
gyp ERR! find Python
gyp ERR! configure error
gyp ERR! stack Error: Could not find any Python installation to use
gyp ERR! stack     at PythonFinder.fail (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:330:47)
gyp ERR! stack     at PythonFinder.runChecks (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:159:21)
gyp ERR! stack     at PythonFinder.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:228:18)
gyp ERR! stack     at PythonFinder.execFileCallback (C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\lib\find-python.js:294:16)
gyp ERR! stack     at exithandler (node:child_process:406:5)
gyp ERR! stack     at ChildProcess.errorhandler (node:child_process:418:5)
gyp ERR! stack     at ChildProcess.emit (node:events:520:28)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:289:12)
gyp ERR! stack     at onErrorNT (node:internal/child_process:478:16)
gyp ERR! stack     at processTicksAndRejections (node:internal/process/task_queues:83:21)
gyp ERR! System Windows_NT 10.0.19043
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild"
gyp ERR! cwd c:\workspace\csv-plus\node_modules\deasync
gyp ERR! node -v v16.14.0

タブを切り替えるとトップレフトの位置がA1に戻る

2つ以上のファイルを開きタグを切り替えると、スクロールしていても必ずトップレフトがA1の位置に初期化されています。
2つのファイルを比較しながら作業すると都度戻ってしまうので、改良希望です。

再現手順

  1. 行数が多い(30行以上)のファイルを2つ開く。
  2. 1つ目のファイルを最下行までスクロールする。そのとき、左上は1行目(ex. A1)でないことを確認する。
  3. 2つ目のファイルにタブを切り替える。
  4. 1つ目のファイルにタブを切り替える(戻す)。
  5. 工程2でスクロールした位置が維持されておらず、左上がA1の位置へスクロール位置が戻っている。

確認バージョン

  • Windows10 Ver0.9.4
  • MacOS 10.15.7 Ver0.9.4

タブの切り替え後の列の幅

列の幅を変更した後、タブを切り替えて、またもとのタブに戻ってくると列の幅がもとの幅に戻っています

行コメント機能

行をコメントアウトする機能を追加する。
"#" などを入力してコメントアウトするのではなく、行番号等をクリックしてグレーアウトさせ、保存時にコメント行として扱うようにするのが良さそう。

実現可能性も含めて要調査。

【セキュリティ対策】contextBridgeの導入

Electronの最新版では、レンダラープロセスにおいてNode.jsモジュールの実行を制限することが推奨されており、
プロセス間通信の方法として、contextBridge の利用が推奨されています。

このため、CSV+もセキュリティの向上のためにcontextBridgeを利用する方式への変更を検討します。

小さいアイコン

Windowsアプリケーション用の小さいアイコンを用意する
もしくはベクター画像のアイコンに差し替えを行う

履歴機能

  • アプリを閉じて再度開いたとき、前回開いていたファイルを復元
  • 「最近開いたファイル」メニューの追加

セルの最大文字数の緩和

楽天ECサイトで使用するCSVは1セル辺り全角5120文字まで入力が許可されており、CSV+では開くことができないとのこと。
そのためセル辺りの最大文字数を緩和する必要がある。

現在は最大5120文字まで許可しているつもりだったが、バイト数や改行文字などの影響があるかもしれないため、セルの最大文字数は無制限とする。

また100列/1万行/1セル辺り100文字のいずれかを越えるものがある場合は列幅の自動計算をオフにする。

行番号の桁数について

素晴らしいツールを公開していただき、ありがとうございます。

【状況】
47504行のCSVファイルを読み込んだところ、行番号が4桁までしか表示されません。
【参考資料】
CSV+のスクリーンショット
【環境】
Windows 10 Pro(64bit) バージョン 21H1
CSV-plus 0.7.4(msi インストーラー版)

お時間のあるときで結構ですので、御検討いただけると助かります。

多言語対応

非常にいいアプリをありがとうございます。

各種メニューなどを多言語対応していただけないでしょうか?
英語版がありますと非常に嬉しいです。

ご検討のほどよろしくお願いいたします。

新しいバージョンの通知

Electronには自動更新の機能もあるが、 .deb 形式など一部のファイル形式には対応していない。
そのため、自動更新ではなく最新バージョンの通知を行う方式で実装を行う。

(要望)タブ操作

便利なソフトウェアありがとうございます。

複数のCSVファイルをタブとして開ける点が画期的で愛用させていただいているのですが、Excelのような
Ctrl + pg up Ctrl + pg dnキーを使ったタブ移動ショートカットなどを追加して頂けないでしょうか?image

Microsoft Excel ショートカット

タブ切り替え後のカーソルの位置

行をコピーした後、タブを切り替えて、また元のタブに戻ると選択した行の一番右にカーソルがあります。
一番左にカーソルが来るようにしてください。

ユニットテストを作成する

機能が増えるにつれてデグレの可能性が高まるため、ユニットテストを作成する必要がある。

ユニットテストはひとまずメインプロセス側のみ作成する。

またE2Eテストはメンテナンスが難しく、壊れやすいため実装は予定しない。

文字化けについて

【状況】
特定のCSVファイル(UTF-8)を読み込んだところ、一部文字化けが発生します。
文字化けの発生しているときのSS
文字化け発生箇所の前の行を削除し、文字化けが発生しなくなったときのSS

【環境】
Windows 10 Pro(64bit) バージョン 21H1
CSV-plus 0.7.4(msi インストーラー版)

【試してみたこと】
1.BOMの有無は影響ありませんでした。
2.文字化け発生行より前の1行削除すると該当箇所の文字化けは発生しなくなります。

なお、文字化けが発生するファイルが必要な場合は、メールにてお渡しします。
お時間のあるときで結構ですので、御検討いただけると助かります。

ソーステキスト表示

もしかしたら開発の現場でしかニーズないかもしれないのですが、テキスト状態のソースが表示できるモードがほしいです。

例えば、今、最下行に空欄の行が1行ありますが、これがファイルとして改行されて存在しているか、実際には存在しない行かというのは、別にテキストエディタで開くしかありません。

外部から受け取ったCSVをチェックすることが多いので、特にExcelから書き出したCSVでは末尾に不要な空行が多くついていたりします。

今は秀丸のCSVモードを使うことが多いです。
ただ、残念ながらセル折り返しができないなど、実際の編集に長けているわけではないので、このCSV+がとても魅力的です。
(スプレッドシート表示があるので、本当にローデータ表示で十分ですが、制御文字が表示される方がありがたい)

ご検討頂けると幸いです。

CSVデータを貼り付けた時に1セルにまとまってしまう

TSVデータなら正しくセル分けされるが、カンマ区切りが正しく認識されない。
区切り文字の設定に合わせて正しく貼り付けされるように修正する。

またコピーした際にも区切り文字でコピーされるようにしたい。

シートの操作履歴

undo/redoや行列の追加、セルの編集などの履歴をタブを切り替えても保持し続け、元に戻すことができるようにする

文字化けします

・1行しかない(行末が改行ではなくeof)
・最後の2文字が "す。”
この条件のcsvファイルを読むと文字化けします。
ss

セルのダイアログ(ズーム)編集

データベースツールでは、表形式でテーブルを表示しつつも、フィールドの値を編集しやすくするために、ダイアログが表示されるものが多く(Accessでは「ズーム」という表現だったと記憶してます…最近使ってないけど)、それがCSV+でもできると便利だなぁと思いました。

Excelのように、値を編集できるスペースを設ける方法もあると思いますが、私はダイアログの方が好みです。Excel方式だと文字列が長いとき、結局編集しにくいので。

参考まで、WindowsのHeidiSQL、MacのSequel Aceでの例を添付します。

HeidiSQLの場合、フィールドの「...」ボタンを押すとダイアログが出ます。

heidisql

Sequel Aceの場合はダブルクリックです。こっちの場合、セル上で直すつもりがうっかりダイアログが開くということが起きるのですが、ボタンを付けるというよりは楽そうかなと推察します。

sequel_ace

例では他に色々な機能(保存や読み込み、検索)が付いていますが、さすがにそれは望んでおりません(笑)

ソートした状態で保存

ソート実行したあと、ソートを維持した状態での保存を可能にしたい。
またソートした状態でのペーストにも対応する。
保存の際は確認ダイアログを表示する。

改行コードLFで強制的に保存されます

便利なソフトウェア有難うございます。

Windowsにて現在Ver0.8.1を使用しておりますが、保存すると
強制的に改行コードがLFとなってしまいます。

リリースには以前のVerで修正とありますが、まだ駄目なようです。
確認して頂けると幸いです。

zip形式での配布

ソフトウェアのインストールが禁止されている職場でも利用が出来るよう、インストール不要のzip/exe形式での配布も行う

フォント変更

試験的に使わせて頂いております。
急激にレベルが上がっているので、メインにできそうな勢いです。改良ありがとうございます。

私の中で切り替えの障壁になっているのは、フォント変更が不可であることです。
というのも列が多いデータを扱っているので、フォントサイズが小さくできないと一覧性でやや使い勝手が悪く感じてしまいます。

というわけでフォントサイズ変更が原点ですが、ついでにVS Codeなどと同様にFont Familyも指定できると、ありがたいなと思っています。

現状設定画面がないと思うので、設定を作るのが大変であれば、ショートカットで拡大・縮小・リセットがあるだけでも助かります。

ご検討頂けると幸いです。

AdSense広告の挿入

CSV+は大きな収益を目的としたプロダクトではありませんが、
有料版のニーズがあったため、無料版との差別化要素として広告の有無を付けたいと考えています。

通常利用する上で操作の妨げにならないよう配慮を行い、
無料版ではフッターのナビ部分に文字広告、また将来的に実装予定の設定画面への広告挿入をしたいと思います。

ダウンロード時のブロックについて

https://www.plus-one.tech/csv-plus/download/
こちらのサイトから Windows EXE 版のダウンロードを Edge や Chrome で行うと、以下のようなメッセージが出てブロックされます。
・Edge
「csv-plus-setup-0.7.6.exe はお使いのデバイスに問題を起こす可能性があるため、ブロックされました。」
・Chrome
「csv-plus-setup-0.7.6.exe は一般的にダウンロードされているファイルではなく危害を及ぼす可能性があります。[破棄]」
回避方法はないかもしれませんが、ダウンロードページで何か「問題ありません」などコメントを入れておくのが良いのではないかと思います。

EXE 形式での配布について

EXE 形式での配布は、ウイルス対策ソフトなどではじかれてしまうので、Windows インストーラー形式 (MSI) での配布を検討いただけないでしょうか。

印刷機能の改善

現在の印刷機能で高さ方向は全て印刷できるが、幅がはみ出てしまう。
全幅が収まるように別ウィンドウで印刷機能を提供する

開いていたファイルの復元の任意オフ

設定画面が作られる予定ということなので、ぜひそこで検討して頂けると助かるのが標記の件です。

私の場合、CSVは中間ファイルなので使い捨てであることが多いです。

例えばブラウザでダウンロードしたCSVをそのままCSV+で開きますが、確認できたらアプリを終了します。
次に開いたときに前回のファイルが開くので毎回閉じています。
ちゃんとタブを閉じてから終了すればいいのですが、ついうっかり。

この機能が有用な方も多いのだと思いますので、設定で任意に変更できるようになると嬉しいです。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.