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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
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
1k
Design System Documentation Tooling 2025
takanorip
3
2.7k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.1k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
770
Bulletproof Design System with TypeScript
takanorip
7
5.2k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
290
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.1k
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.9k
社内管理画面のデザインもプロダクトデザイン
takanorip
5
2.3k
Other Decks in Technology
See All in Technology
失敗を経て、Harness Engineering で 大切にしたいことを考える / Learning from Failure: What Matters in Harness Engineering
bitkey
PRO
1
320
作って終わりにしない タイミーのセマンティックレイヤー育成の現在地
chanyou0311
4
2.2k
機械学習を「社会実装」するということ 2026年夏版 / Social Implementation of Machine Learning June 2026 Version
moepy_stats
5
1.7k
Claude Code の Sandbox 機能を Anthropic Sandbox Runtime(srt) で試そう!/lets-play-anthropic-sandbox-runtime
tomoki10
1
560
SONiC Scale-Up Working Group から探る Scale-UpやUltraEthernet機能の実装方法
ebiken
PRO
2
130
新しいVibe Codingと”自走”について
watany
6
300
Building applications in the Gemini API family.
line_developers_tw
PRO
0
3.1k
AIソロプレナー時代に2ヶ月で20人増員した事業創造会社の開発組織の話
miyatakoji
0
610
エンジニアリング戦略の作り方 / Crafting Engineering Strategy
iwashi86
21
6.7k
Dario Amodi『Policy on the AI Exponential』を理解する
nagatsu
0
230
タクシーアプリ『GO』の実践的データ活用
mot_techtalk
3
190
非エンジニアがClaudeと挑んだ「1ヶ月間プロダクト30本ノック」
askokc
0
390
Featured
See All Featured
Designing Powerful Visuals for Engaging Learning
tmiket
1
410
The agentic SEO stack - context over prompts
schlessera
0
810
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
310
Bash Introduction
62gerente
615
220k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.8k
Winning Ecommerce Organic Search in an AI Era - #searchnstuff2025
aleyda
1
2k
brightonSEO & MeasureFest 2025 - Christian Goodrich - Winning strategies for Black Friday CRO & PPC
cargoodrich
3
730
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
How to build an LLM SEO readiness audit: a practical framework
nmsamuel
1
770
GraphQLとの向き合い方2022年版
quramy
50
15k
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
470
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
おわり