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
AI-Slopなデザインを生まないためのデザインプロセス戦略
takanorip
7
5.4k
「見せる」登壇資料デザインの極意
takanorip
7
1.4k
Design System Documentation Tooling 2025
takanorip
3
2.9k
デザインエンジニアの延長にデザインマネージャーとしての可能性を探る
takanorip
1
1.3k
Tools for Design Engineers other than LLM in the LLM era
takanorip
1
830
Bulletproof Design System with TypeScript
takanorip
7
5.3k
Eleventy3.0 で始める爆速個人ブログ開発!
takanorip
0
310
Webフォント選定の極意!フォントの基本から最新トレンドまで徹底解説
takanorip
6
1.1k
効果的な管理画面を デザインをするために 避けるべき5つの罠
takanorip
15
7.9k
Other Decks in Technology
See All in Technology
Apache Icebergインフラストラクチャ:ストレージ・カタログ・エンジンの選択肢とClouderaプラットフォームでの実装
tsugiyama
0
120
DatadogのBits Chatが開発組織にもたらしたもの / What Bits Chat Has Brought Us
sms_tech
1
290
LanceDB入門
mocobeta
9
600
モノリス Rails でも日中に rails db:migrate を走らせたい! / Daytime rails db:migrate on Monolithic Rails!
euglena1215
4
640
What's new in Go 1.27?
ciarana
0
270
FDEの心得
noriakioji
5
6.3k
Breaking the Seal: Static Deobfuscation of Compiled V8 JavaScript Bytecode Malware
hshrzd
0
870
AIのためのEthernet技術動向 (SerDes)
markunet
1
220
Invisible to AI? Making TYPO3 Sites Quotable by AI Search Systems
wolfgangwagner
0
230
ボトムアップ文化が強い組織で セキュリティをどう根付かせていくかの現在進行形の話 / Making Security Stick in a Bottom-Up Organization
yamaguchitk333
0
250
現場回帰したデータエンジニアが考える AI 時代のキャリア開発 / Career Development in the Age of AI Perspectives from a Hands-on Data Engineer
medley
0
190
モバイルアプリ開発概論2026
recruitengineers
PRO
6
670
Featured
See All Featured
Joys of Absence: A Defence of Solitary Play
codingconduct
1
440
Raft: Consensus for Rubyists
vanstee
141
7.6k
Embracing the Ebb and Flow
colly
88
5.1k
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
230
How to train your dragon (web standard)
notwaldorf
97
6.8k
Producing Creativity
orderedlist
PRO
348
40k
A Tale of Four Properties
chriscoyier
163
24k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
The Spectacular Lies of Maps
axbom
PRO
1
930
Color Theory Basics | Prateek | Gurzu
gurzu
0
430
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
おわり