π JavaScript λ‘ csv νμΌ μμ±ν΄μ λ€μ΄λ‘λλ°κΈ°
μ΄μ μ csv
ν¬λ§·μ λ€λ£° μΌμ΄ μ겨μ Blob
κ°μ²΄λ₯Ό μμ±ν΄μ νμΌμ λ€μ΄λ‘λ λ°λλ‘ μ½λλ₯Ό ꡬννμμ΅λλ€.
const download = function (data) {
const blob = new Blob([data], { type: 'text/csv' });
const url = URL.createObjectURL(blob)
const a = document.createElement('a')
a.setAttribute('href', url)
a.setAttribute('download', 'νμΌμ΄λ¦.csv');
a.click()
}
μ½λλ κ°λ¨ν©λλ€.
리μμ€νμ
μ΄ λͺ
μλ Blob
κ°μ²΄λ₯Ό μμ±ν λ€ μ΄λ₯Ό κ°λ¦¬ν€λ Object URL μ μμ±νκ³ ,
μ€μ DOM Tree μ λ λλ§νμ§μλ a
νκ·Έμ μ΄ url μ ν λΉνμ¬
ν΄λ¦ μ΄λ²€νΈλ₯Ό μ§μ λ°μμμΌ λ€μ΄λ‘λκ° μ΄λ£¨μ΄μ§λλ‘ νλ κ²μ λλ€.
π νκΈ μΈμ½λ© κΉ¨μ§ νμ ν΄κ²°νκΈ°
λλΆλΆμ λΈλΌμ°μ νκ²½μμλ λ¬Έμ κ° μμμ§λ§,
νΉμ νκ²½λ€μμ (μΌμ± λΈλΌμ°μ or μλμ° νκ²½ λ±) νκΈμ΄ κΉ¨μ Έμ μ μ₯λλ μ΄μκ° μμμ΅λλ€.
μμΈμ μ°Ύμ보λ λ°μ΄νΈ μμ νμ(Byte Order Mark)
μ΄λΌλ κ²μ μκ² λμμ΅λλ€.
μΌλ°μ μΌλ‘ UTF
νμΌμ μ΄ BOM
μ λͺ
μν΄μ λ°μ΄νΈλ₯Ό μ½λ μμλ₯Ό λͺ
μν μ μλ€κ³ ν©λλ€. (little-endian, big-endian)
νκΈμ ν¬ν¨νλ μ λμ½λ λ¬Έμλ λλΆλΆ UTF-8
λ‘ μΈμ½λ©λκΈ° λλ¬Έμ
Blob
κ°μ²΄λ₯Ό μμ±ν λ μ¬μ©νλ λ°μ΄ν° 맨 μμ \ufeff
λ₯Ό μΆκ°ν΄μ
μ°λ¦¬κ° μμ±ν csv
λ°μ΄ν°μ μΈμ½λ© λ°©μμ λͺ
μν΄μ€λλ€.
const blob = new Blob(['\ufeff' + data], { type: 'text/csv' });
π μ°Έκ³ μλ£
How to create and download CSV file in JavaScript ? - GeeksforGeeks
λ°μ΄νΈ μμ νμ - μν€λ°±κ³Ό, μ°λ¦¬ λͺ¨λμ λ°±κ³Όμ¬μ
μλ°μ€ν¬λ¦½νΈμμ csv νμΌ μμ±μ νκΈ κΉ¨μ§ λ¬Έμ ν΄κ²°
'π‘ issue' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
storybook μμ styled component css prop μ μ©μ΄ μλλ€λ©΄? (0) | 2023.05.15 |
---|---|
Safari λΈλΌμ°μ window.open block μ΄μ (0) | 2022.11.26 |
-webkit-overflow-scrolling μμ±κ³Ό stacking context μ΄μ (0) | 2022.07.04 |
Next.js window is not defined μμΈ λ° ν΄κ²°λ°©λ² (0) | 2022.06.17 |
Safari λΈλΌμ°μ scroll-behavior μ΄μ (0) | 2022.06.11 |
π¬ λκΈ