yarn install
yarn run electron:serve
yarn run electron:build
yarn test:unit
yarn test:e2e
yarn lint
A completely new CSV editor that gives you a great experience with simple operations.
License: MIT License
yarn install
yarn run electron:serve
yarn run electron:build
yarn test:unit
yarn test:e2e
yarn lint
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
2つ以上のファイルを開きタグを切り替えると、スクロールしていても必ずトップレフトがA1の位置に初期化されています。
2つのファイルを比較しながら作業すると都度戻ってしまうので、改良希望です。
背景色やボタンの色などを変更できるようにする
左揃え/**揃え/右揃え のほかに、小数点揃えを導入する
できるかどうか要検討
列の幅を変更した後、タブを切り替えて、またもとのタブに戻ってくると列の幅がもとの幅に戻っています
行をコメントアウトする機能を追加する。
"#" などを入力してコメントアウトするのではなく、行番号等をクリックしてグレーアウトさせ、保存時にコメント行として扱うようにするのが良さそう。
実現可能性も含めて要調査。
コンテキストメニューに「コピー」「切り取り」があるのに、「貼り付け」がないため、追加する
Electronの最新版では、レンダラープロセスにおいてNode.jsモジュールの実行を制限することが推奨されており、
プロセス間通信の方法として、contextBridge の利用が推奨されています。
このため、CSV+もセキュリティの向上のためにcontextBridgeを利用する方式への変更を検討します。
Windowsアプリケーション用の小さいアイコンを用意する
もしくはベクター画像のアイコンに差し替えを行う
.exe 形式のファイルだと一部のブラウザでダウンロードできないとのこと。
zip化して配布することでガードを回避する
BOM付きのファイルを変更した時、BOMが消えてしまう
楽天ECサイトで使用するCSVは1セル辺り全角5120文字まで入力が許可されており、CSV+では開くことができないとのこと。
そのためセル辺りの最大文字数を緩和する必要がある。
現在は最大5120文字まで許可しているつもりだったが、バイト数や改行文字などの影響があるかもしれないため、セルの最大文字数は無制限とする。
また100列/1万行/1セル辺り100文字のいずれかを越えるものがある場合は列幅の自動計算をオフにする。
保存時に改行コードが強制的にLFになってしまう
素晴らしいツールを公開していただき、ありがとうございます。
【状況】
47504行のCSVファイルを読み込んだところ、行番号が4桁までしか表示されません。
【参考資料】
CSV+のスクリーンショット
【環境】
Windows 10 Pro(64bit) バージョン 21H1
CSV-plus 0.7.4(msi インストーラー版)
お時間のあるときで結構ですので、御検討いただけると助かります。
非常にいいアプリをありがとうございます。
各種メニューなどを多言語対応していただけないでしょうか?
英語版がありますと非常に嬉しいです。
ご検討のほどよろしくお願いいたします。
Electronには自動更新の機能もあるが、 .deb 形式など一部のファイル形式には対応していない。
そのため、自動更新ではなく最新バージョンの通知を行う方式で実装を行う。
お世話になっております。便利ツールの提供ありがとうございます。
さて、表題の件は仕様でしょうか?
行が長い時、先頭に移動して止まる手段がマウス操作しかなくなりそうで、不便に感じました
行をコピーした後、タブを切り替えて、また元のタブに戻ると選択した行の一番右にカーソルがあります。
一番左にカーソルが来るようにしてください。
新規作成した0バイトのファイルを開こうとするとエラーが起きる。
機能が増えるにつれてデグレの可能性が高まるため、ユニットテストを作成する必要がある。
ユニットテストはひとまずメインプロセス側のみ作成する。
またE2Eテストはメンテナンスが難しく、壊れやすいため実装は予定しない。
【状況】
特定のCSVファイル(UTF-8)を読み込んだところ、一部文字化けが発生します。
文字化けの発生しているときのSS
文字化け発生箇所の前の行を削除し、文字化けが発生しなくなったときのSS
【環境】
Windows 10 Pro(64bit) バージョン 21H1
CSV-plus 0.7.4(msi インストーラー版)
【試してみたこと】
1.BOMの有無は影響ありませんでした。
2.文字化け発生行より前の1行削除すると該当箇所の文字化けは発生しなくなります。
なお、文字化けが発生するファイルが必要な場合は、メールにてお渡しします。
お時間のあるときで結構ですので、御検討いただけると助かります。
Could you please clarify the license? E.g., MIT license.
Develop環境にて、下記手順を行うと自動リサイズが効かなくなる
ライブラリのAPIコールとショートカットイベントの2回実行されている
もしかしたら開発の現場でしかニーズないかもしれないのですが、テキスト状態のソースが表示できるモードがほしいです。
例えば、今、最下行に空欄の行が1行ありますが、これがファイルとして改行されて存在しているか、実際には存在しない行かというのは、別にテキストエディタで開くしかありません。
外部から受け取ったCSVをチェックすることが多いので、特にExcelから書き出したCSVでは末尾に不要な空行が多くついていたりします。
今は秀丸のCSVモードを使うことが多いです。
ただ、残念ながらセル折り返しができないなど、実際の編集に長けているわけではないので、このCSV+がとても魅力的です。
(スプレッドシート表示があるので、本当にローデータ表示で十分ですが、制御文字が表示される方がありがたい)
ご検討頂けると幸いです。
改行コードや区切り文字を含むセルの保存時、ダブルクオートで囲む処理がされていないために再度開いたときに崩れてしまう。
もしかしたら仕様なのかもしれませんが、Mac OSでセルのコピーができませんでした
OS versionは11.2.3(20D91)です。
TSVデータなら正しくセル分けされるが、カンマ区切りが正しく認識されない。
区切り文字の設定に合わせて正しく貼り付けされるように修正する。
またコピーした際にも区切り文字でコピーされるようにしたい。
undo/redoや行列の追加、セルの編集などの履歴をタブを切り替えても保持し続け、元に戻すことができるようにする
区切り文字を任意の値に変更する機能を追加する
データベースツールでは、表形式でテーブルを表示しつつも、フィールドの値を編集しやすくするために、ダイアログが表示されるものが多く(Accessでは「ズーム」という表現だったと記憶してます…最近使ってないけど)、それがCSV+でもできると便利だなぁと思いました。
Excelのように、値を編集できるスペースを設ける方法もあると思いますが、私はダイアログの方が好みです。Excel方式だと文字列が長いとき、結局編集しにくいので。
参考まで、WindowsのHeidiSQL、MacのSequel Aceでの例を添付します。
HeidiSQLの場合、フィールドの「...」ボタンを押すとダイアログが出ます。
Sequel Aceの場合はダブルクリックです。こっちの場合、セル上で直すつもりがうっかりダイアログが開くということが起きるのですが、ボタンを付けるというよりは楽そうかなと推察します。
例では他に色々な機能(保存や読み込み、検索)が付いていますが、さすがにそれは望んでおりません(笑)
WinGetが入っている環境でバッチファイルのダブルクリックだけでインストールできると便利だと思ったため要望を出しました。
https://github.com/microsoft/winget-pkgs
現在は標準でCSVファイルへの関連付けが行われていないため、インストール時にファイルへの関連付けを行う
ソート実行したあと、ソートを維持した状態での保存を可能にしたい。
またソートした状態でのペーストにも対応する。
保存の際は確認ダイアログを表示する。
便利なソフトウェア有難うございます。
Windowsにて現在Ver0.8.1を使用しておりますが、保存すると
強制的に改行コードがLFとなってしまいます。
リリースには以前のVerで修正とありますが、まだ駄目なようです。
確認して頂けると幸いです。
ソフトウェアのインストールが禁止されている職場でも利用が出来るよう、インストール不要のzip/exe形式での配布も行う
試験的に使わせて頂いております。
急激にレベルが上がっているので、メインにできそうな勢いです。改良ありがとうございます。
私の中で切り替えの障壁になっているのは、フォント変更が不可であることです。
というのも列が多いデータを扱っているので、フォントサイズが小さくできないと一覧性でやや使い勝手が悪く感じてしまいます。
というわけでフォントサイズ変更が原点ですが、ついでにVS Codeなどと同様にFont Familyも指定できると、ありがたいなと思っています。
現状設定画面がないと思うので、設定を作るのが大変であれば、ショートカットで拡大・縮小・リセットがあるだけでも助かります。
ご検討頂けると幸いです。
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 形式での配布は、ウイルス対策ソフトなどではじかれてしまうので、Windows インストーラー形式 (MSI) での配布を検討いただけないでしょうか。
現在の印刷機能で高さ方向は全て印刷できるが、幅がはみ出てしまう。
全幅が収まるように別ウィンドウで印刷機能を提供する
URLが空になっていたため、固定値をセットする
設定画面が作られる予定ということなので、ぜひそこで検討して頂けると助かるのが標記の件です。
私の場合、CSVは中間ファイルなので使い捨てであることが多いです。
例えばブラウザでダウンロードしたCSVをそのままCSV+で開きますが、確認できたらアプリを終了します。
次に開いたときに前回のファイルが開くので毎回閉じています。
ちゃんとタブを閉じてから終了すればいいのですが、ついうっかり。
この機能が有用な方も多いのだと思いますので、設定で任意に変更できるようになると嬉しいです。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.