Wenlan
Wenlan is a source-backed AI knowledge base and LLM wiki for AI work: organize documents and decisions into pages you can find, inspect, and review.
無料のオンラインCSV編集ツール。ブラウザだけでCSV・TSVを編集。データ送信なし・UTF-8/Shift_JIS対応・5万行まで。
Translation pending
ProductivityGitHub @bassmicrobeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
ブラウザ内でCSVを編集・検索・変換できる「ezcsv」。仮想スクロール、セル編集、UTF-8/Shift_JIS、CSV/TSV入出力に対応するNext.jsアプリ。
Translation pending
Loading the full README.
Read the full README ↗ブラウザだけで動く無料のCSV・TSV編集ツール。CSVデータをサーバーに送信せず、編集・変換・エクスポートできます。
CSV処理はブラウザ内で完結し、読み込んだデータはサーバーに送信せず、LocalStorageなどにも保存しません。同意した場合のアクセス解析と、お問い合わせ送信には外部通信を利用します。アクセス解析への同意状態のみLocalStorageに保存し、フッターの「アクセス解析の設定」から変更できます。
PDFはブラウザの描画・メモリ上限を考慮し、500行・10,000セルまで対応します。上限を超える表はCSV・TSVで保存してください。QRコードは検索結果を対象とし、検索0件の場合は出力しません。セル編集中のEscapeで変更を取り消せます。列見出しにフォーカスしてAlt+←/Alt+→で列を移動できます。
対応する入力ファイルは .csv・.tsv・.txt です。Excelブック(.xlsx)は、CSVに書き出してから読み込んでください。
Node.js 22.22.1以上と、package.json の packageManager で指定したpnpmを利用します。
corepack enable
corepack pnpm install --frozen-lockfile
corepack pnpm dev
開発サーバーは localhost:3000 で開けます。環境変数が必要な場合は .env.example を .env.local にコピーして設定してください。CSV編集機能だけを使う場合、AWSなどの設定は不要です。
corepack pnpm lint # BiomeによるLint・フォーマット確認
corepack pnpm run typecheck # TypeScript型検査
corepack pnpm test # Vitest(ウォッチ)
corepack pnpm run test:run # Vitest一回実行
corepack pnpm run check # Lint・型検査・テストをまとめて実行
corepack pnpm run build # 本番ビルド
コミット前にはHuskyとlint-stagedでBiomeが実行されます。チェックとGitフックはCorepack経由で、プロジェクトで指定したpnpmを使います。テストツールの依存関係はVite 8.3.6を指定し、esbuildは脆弱性修正版の0.28.1以降を使うようpnpmのoverrideを設定しています。TypeScript 7にはJavaScriptのコンパイラAPIがないため、next build の型チェックはNext.jsの既定どおり tsc コマンドで行います(experimental.useTypeScriptCli を false にしないでください)。Node.js 22.22.1以上はlint-staged 17の要件です。
Basic認証(任意) — BASIC_AUTH_USER と BASIC_AUTH_PASSWORD を両方設定すると、サイトにBasic認証がかかります。BASIC_AUTH_ENABLED=false または 0 で無効化できます。
明示的に有効化したのに認証情報がない場合、またはユーザー名・パスワードの片方しかない場合は、公開せず503を返します。設定値を修正してから利用してください。
お問い合わせフォーム — メール送信にはAWS SESを利用します。本番ではCloudflare Turnstileのサイトキーとシークレットも必要です。
Turnstileのscriptは next/script(async)で読み込むため、turnstile.ready() は使わず、読み込み完了後に直接 render します(ready() は async のscriptでは例外になり、お問い合わせページがエラー表示になります)。
お問い合わせのリクエスト本文は64KiBまでです。Turnstileは送信先のホスト名も検証します。レート制限はインスタンス単位のため、本番で全インスタンスに共通する制限が必要な場合は共有ストレージやWAFを併用してください。
| 環境変数 | 内容 |
|---|---|
SES_FROM_EMAIL / SES_TO_EMAIL | SESで検証済みの送信元/お問い合わせの送信先 |
AWS_REGION | SESのリージョン(既定値: us-east-1) |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY | SES送信権限を持つ認証情報(または実行環境のIAM認証) |
NEXT_PUBLIC_TURNSTILE_SITE_KEY / TURNSTILE_SECRET_KEY | Cloudflare Turnstileのキー(本番では両方必須) |
CONTACT_AUTOREPLY_ENABLED | 自動返信の有効/無効(falseで無効) |
設定例は .env.example を参照してください。認証情報はリポジトリにコミットしないでください。
corepack pnpm run build
corepack pnpm start
Vercelでは、このリポジトリをインポートしてNext.jsプロジェクトとして構成し、必要な環境変数を設定します。pnpm-lock.yaml と packageManager でpnpmのバージョンを固定しています。ビルドコマンドは pnpm run build、公開ドメインは ezcsv.com です。
ブランドロゴのSVGは public/brand に格納しています。favicon(src/app/icon.svg・src/app/favicon.ico)、Appleホーム画面アイコン(src/app/apple-icon.png)、Webアプリ用アイコン(public/icons/)、OGP画像(src/app/opengraph-image.png)は、元のSVGを差し替えたあと次のコマンドで再生成し、生成物もコミットしてください。
corepack pnpm run assets:generate
詳細は ブランド素材ガイド を参照してください。