Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ReactでCSV一括登録機能作った話
Search
takanorip
October 02, 2017
Technology
820
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ReactでCSV一括登録機能作った話
takanorip
October 02, 2017
More Decks by takanorip
See All by takanorip
「見せる」登壇資料デザインの極意
takanorip
4
1.2k
Design System Documentation Tooling 2025
takanorip
3
2.8k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.1k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
790
Bulletproof Design System with TypeScript
takanorip
7
5.2k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
300
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.1k
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.9k
社内管理画面のデザインもプロダクトデザイン
takanorip
5
2.3k
Other Decks in Technology
See All in Technology
発表と総括 / Presentations and Summary
ks91
PRO
0
140
AICoEでAIネイティブ組織への進化
yukiogawa
0
200
Compose 新機能総まとめ / What's New in Jetpack Compose
yanzm
0
320
関数型の考えを TypeScript に持ち込んで、テストしやすい純粋関数を増やす / Pure at the Core, Effects at the Edge: Bringing Functional Thinking into TypeScript
kaminashi
2
130
ruby.wasmとPicoRuby.wasmに対応した仮想DOMライブラリを作ってる話 #kaigieffect_kaigi
sue445
PRO
0
150
実践!既存 Project への AI-Driven Development 適用〜 一ヶ月で Project 唯一のフロントエンドエンジニアを作り出せ〜
lycorptech_jp
PRO
0
230
型は壁、Rustでもバグを直すな、表現できなくせよ
nwiizo
14
2.1k
Devsumi 2026 Summer 人もAIも使える共通基盤を事業の加速装置にする~デザインシステム運用に学ぶ組織レバレッジ~ 渡辺 凌央
legalontechnologies
PRO
1
230
人を動かすのは時間ではなく、納得感 〜新任EMが入社3ヶ月、組織を2回変えた話〜
kakehashi
PRO
3
270
ゴールデンパスは敷いただけでは道にならない ─ 企画部門のエンジニアが技術標準を事業価値に変えるまで
mhrtech
1
220
Claude Code公式skillで 自分の仕事を少しずつ手放そう!(Claude Code開発ノウハウ大公開スペシャル by クラスメソッド)
kaym
1
490
第67回コンピュータビジョン勉強会CVPR2026読会前編
tsukamotokenji
0
150
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
It's Worth the Effort
3n
188
29k
Faster Mobile Websites
deanohume
310
32k
Paper Plane
katiecoart
PRO
2
52k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
1
3.7k
Speed Design
sergeychernyshev
33
1.9k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Balancing Empowerment & Direction
lara
6
1.2k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
180
Believing is Seeing
oripsolob
1
170
Transcript
Reactで「CSV一括登録機能」 を開発した話 Takanori Oki
自己紹介 • 大木尊紀(オオキタカノリ)@takanorip • フロントエンドエンジニア(React、HTML/CSS/JS) • 株式会社スマートドライブ Web管理画面や各種ウェブサイトの開発 • 最近のハイライト:
ReactがMITライセンスになった! • 技術書典3でWebComponentsの本出します!
None
各種グッズも販売しています! • 買ってください! • SZURIとSTEERSで販売中! • 「犬テトラ+」か「takanorip」で検索!!
CSV一括登録機能?
やりたいこと • ドラッグアンドドロップでCSVをアップロード • CSVをJSONにパース • JSONを配列に変換し、Storeへ格納 • フォーム量産
D&D • react-dnd 有名なD&Dライブラリ 全体的に使いやすい • React-Dropzone-Component • react-dropzone 今回はこれを使用
ファイルのアップロード周りがやりやすかった
JNQPSU%SPQ[POFGSPNSFBDUESPQ[POF JNQPSU#VUUPOGSPNDPNQPOFOUTBUPNT#VUUPO DMBTT'JMF6QMPBEFYUFOET$PNQPOFOU\ DPOTUSVDUPS QSPQT \ TVQFS QSPQT UIJTTUBUF\
JT%SBH3FKFDUGBMTF ^ ^
PO%SPQ \ UIJTTFU4UBUF \ JT%SBH3FKFDUGBMTF ^ ^ PO%SPQ3FKFDUFE
\ UIJTTFU4UBUF \ JT%SBH3FKFDUUSVF ^ ^ IBOEMF.FSHF SFTVMUT \ UIJTQSPQTPO$PNQMFUF SFTVMUT ^ IBOEMF1BSTF$TW GJMFT \^
SFOEFS \ MFUESPQ[POF3FG SFUVSO EJWDMBTT/BNF\TUZMFGJMF6QMPBE^ EJWDMBTT/BNF\TUZMFESPQ"SFB^ %SPQ[POF PO%SPQ\UIJTPO%SPQ^ PO%SPQ"DDFQUFE\UIJTIBOEMF1BSTF$TW^
PO%SPQ3FKFDUFE\UIJTPO%SPQ3FKFDUFE^ BDDFQUUFYUDTW BQQMJDBUJPOWOENTFYDFM EJTBCMF$MJDL NVMUJQMF\GBMTF^ DMBTT/BNF\TUZMFESPQ[POF^ BDUJWF$MBTT/BNF\TUZMFBDUJWF^ SFKFDU$MBTT/BNF\TUZMFSFKFDU^ SFG\ OPEF \ESPQ[POF3FGOPEF^^ \ UIJTTUBUFJT%SBH3FKFDU QDMBTT/BNF\TUZMFSFKFDU.FTTBHF^ԽԉԌՓӘ┣㜇Ҷ㉹ҮӨӃѭQ ^ %SPQ[POF #VUUPO PO$MJDL\ \ESPQ[POF3FGPQFO ^^ EJW EJW ^ ^
%SPQ[POF PO%SPQ\UIJTPO%SPQ^ PO%SPQ"DDFQUFE\UIJTIBOEMF1BSTF$TW^ PO%SPQ3FKFDUFE\UIJTPO%SPQ3FKFDUFE^ BDDFQUUFYUDTW BQQMJDBUJPOWOENTFYDFM EJTBCMF$MJDL NVMUJQMF\GBMTF^ DMBTT/BNF\TUZMFESPQ[POF^ BDUJWF$MBTT/BNF\TUZMFBDUJWF^
SFKFDU$MBTT/BNF\TUZMFSFKFDU^ SFG\ OPEF \ESPQ[POF3FGOPEF^^
#VUUPO PO$MJDL\ \ESPQ[POF3FGPQFO ^^
CSV to JSON • csvtojson よくわからんエラーが出て諦めた issueたてた • csv nodeでcsvといえばこれ!って感じ
• papaparse ドキュメントが豊富でわかりやすい 簡単に実装できた
Shift-JIS
Shift-JIS対応 • アップロードされたCSVファイルがShift-JISだったとき 文字化けしないように処理が必要 • Shift-JISなんて存在しない世の中にしたい • encoding-japanese Shift-JISをUnicodeに変換してくれるライブラリ めっちゃ便利、感謝しかない
JNQPSU1BQBGSPNQBQBQBSTF JNQPSU&ODPEJOHGSPNFODPEJOHKBQBOFTF IBOEMF1BSTF$TW GJMFT \ DPOTUGJMFGJMFT<> DPOTUSFBEFSOFX'JMF3FBEFS SFBEFSPOMPBE F
\ DPOTUDPEFTOFX6JOU"SSBZ FUBSHFUSFTVMU DPOTUFODPEJOH&ODPEJOHEFUFDU DPEFT DPOTUVOJDPEF4USJOH&ODPEJOHDPOWFSU DPEFT \ UPVOJDPEF GSPNFODPEJOH UZQFTUSJOH ^ 1BQBQBSTF VOJDPEF4USJOH \ IFBEFSUSVF EZOBNJD5ZQJOHUSVF TLJQ&NQUZ-JOFTUSVF DPNQMFUF SFTVMUT \ UIJTIBOEMF.FSHF SFTVMUT ^ ^ ^ SFBEFSSFBE"T"SSBZ#VGGFS GJMF ^
まとめ • CSVのパースは簡単にできる • Shift-JISは消耗しやすい • フォーマットどおりじゃないとエラーになるので、 その辺のハンドリングをどうするか
None
おわり