Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
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
AI-Slopなデザインを生まないためのデザインプロセス戦略
takanorip
10
6.1k
「見せる」登壇資料デザインの極意
takanorip
7
1.6k
Design System Documentation Tooling 2025
takanorip
3
3.1k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.4k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
900
Bulletproof Design System with TypeScript
takanorip
7
5.4k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
320
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.2k
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
8k
Other Decks in Technology
See All in Technology
可視化から始めたAI駆動開発_ochi_ver1.01 / AI-Driven Development Starting with Visualization_ver1.01
yayoi_dd
0
110
検証フェーズはAIの回答を判断するための学習機会
toru_kubota
2
160
The kernel report
ennael
PRO
1
170
AI 時代の Azure エンジニアリング ~ 私たちは何を磨き、何を任せるのか ~
chack411
1
230
IR Today: Theory, Practice, and Agents
dtunkelang
0
300
『GOエコノミー 』(相乗りサービス) におけるスペック駆動開発
mot_techtalk
1
120
AIは爆速なのに、私が詰まっていた話 ― 音声入力と鳴くマスコットでボトルネックを削る
yama3133
0
160
2026-09-26 Platform Engineering Kaigi 2026 インフラとアプリの境界線と委譲の設計 / Drawing the Infra and App Line
masasuzu
0
540
高負荷プロダクション環境におけるAWS Lambdaのリアル 〜スケールとコストを左右する実行ライフサイクルの技術仕様〜
maimyyym
2
840
Meet AgentCore Identity Consent Portal
hironobuiga
2
140
[Kiro Meetup #7] Kiro Crew Dive Deep
konippi
0
440
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
140
Featured
See All Featured
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
550
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
66k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Are puppies a ranking factor?
jonoalderson
2
4k
Between Models and Reality
mayunak
4
480
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
The B2B funnel & how to create a winning content strategy
katarinadahlin
PRO
1
550
Producing Creativity
orderedlist
PRO
348
41k
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
560
Context Engineering - Making Every Token Count
addyosmani
9
1.2k
Stewardship and Sustainability of Urban and Community Forests
pwiseman
0
530
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
おわり