Skip to content

Commit 0e8051a

Browse files
committed
add preview csv file content in web
1 parent 6e963db commit 0e8051a

File tree

2 files changed

+43
-2
lines changed

2 files changed

+43
-2
lines changed

src/web/index.html

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,10 @@ <h1 class="font-bold text-2xl text-center">JS Linear Regression</h1>
3030
<input type="submit" value="Process"
3131
class="w-full mt-5 bg-indigo-600 text-white py-2 px-4 rounded-md hover:bg-indigo-700 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2">
3232
</form>
33+
34+
<div id="preview-data-container" style="display: none; margin-top: 5rem;">
35+
36+
</div>
3337
</main>
3438

3539
<script src="script.js"></script>

src/web/script.js

Lines changed: 39 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,45 @@
11
const dataForm = document.getElementById('data-form')
2+
const previewData = document.getElementById('preview-data-container')
23

34
dataForm.addEventListener('submit', function(e) {
45
e.preventDefault()
56

6-
console.log('data!')
7-
console.log(this)
7+
const formData = new FormData(this)
8+
const file = formData.get('data')
9+
10+
const reader = new FileReader()
11+
12+
reader.onload = (e) => {
13+
const fileContent = e.target.result
14+
const rows = fileContent.split(/[\r\n]+/).map(row => row.split(','))
15+
previewData.style.display = 'block'
16+
17+
let previewedTable = `
18+
<table class="min-w-full table-auto bg-white shadow-md rounded-lg">
19+
<thead class="bg-gray-200 rounded-t-lg">
20+
<tr>
21+
`
22+
23+
for (const item of rows.shift()) {
24+
previewedTable += `<td class="px-4 py-2 text-left text-sm font-semibold text-gray-700">${item}</td>`
25+
}
26+
27+
previewedTable += `
28+
</tr>
29+
</thead>
30+
`
31+
32+
for (const row of rows) {
33+
previewedTable += `<tr>`
34+
for (const item of row) {
35+
previewedTable += `<td>${item}</td>`
36+
}
37+
previewedTable += `</tr>`
38+
39+
}
40+
41+
previewData.innerHTML = previewedTable
42+
}
43+
44+
reader.readAsText(file)
845
})

0 commit comments

Comments
 (0)