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
5.9k
「見せる」登壇資料デザインの極意
takanorip
7
1.6k
Design System Documentation Tooling 2025
takanorip
3
3k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.3k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
880
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
データ界隈LT祭 第1回LT登壇
taromatsui_cccmkhd
2
1.4k
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
1
160
「守り」で活用するオンデバイスLLM 〜写ってはいけないを総力戦で防ぐ〜 / iOSDC Japan 2026
nakamuuu
0
160
HHKBエバンジェリストになる方法
941
0
110
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
8
4.3k
株式会社シーエーシー エンジニア向け会社紹介資料
cac
0
57k
銀行勘定系システムにおける開発プロセス刷新×AIによる環境モダナイゼーション / Development Process Transformation and AI-Driven Environment Modernization
muit
0
2.2k
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
0
140
ソフトウェアDNAとクラウドエージェントのススメ
cloudace
0
110
人間はどの意思決定を手放せるのか
kawasima
14
7.1k
顧客に向き合う開発組織へ。リアーキテクチャとフィーチャーチーム化で挑む組織改革
safie
0
2k
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
830
Featured
See All Featured
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Paper Plane
katiecoart
PRO
4
53k
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
240
Bash Introduction
62gerente
615
220k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
Ethics towards AI in product and experience design
skipperchong
2
380
Fireside Chat
paigeccino
43
4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
KATA
mclloyd
PRO
35
15k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
232
55k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.5k
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
おわり