-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
63 lines (58 loc) · 2.31 KB
/
index.html
File metadata and controls
63 lines (58 loc) · 2.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<!DOCTYPE html>
<html>
<head>
<title>parseData</title>
</head>
<body>
<h1>JSON code:</h1>
<pre id="parsedData"></pre>
<script src="https://unpkg.com/xlsx/dist/xlsx.full.min.js"></script>
<script>
function turnNum(s) {
s = s.split(":");
if (parseInt(s[0]) <= 5) {
s[0] = parseInt(s[0]) + 12;
}
return parseInt(s[0]) * 60 * 60 + parseInt(s[1]) * 60;
}
function parseData() {
fetch('data.xlsx')
.then(response => response.arrayBuffer())
.then(buffer => {
var workbook = XLSX.read(new Uint8Array(buffer), { type: 'array' });
var sheetName = workbook.SheetNames[0];
var worksheet = workbook.Sheets[sheetName];
var jsonData = [];
var rows = XLSX.utils.sheet_to_json(worksheet, { header: 1 });
for (var i = 1; i < rows.length; i++) {
var row = rows[i];
var date = XLSX.SSF.format('yyyy-mm-dd', row[0]);
var event = row[1];
var comment = row[2] || '';
var dataObj = {
date: date,
type: event,
comment: comment
};
for (var j = 3; j < row.length; j++) {
var timePeriod = row[j];
if (timePeriod) {
var times = timePeriod.split('-');
var startTime = turnNum(times[0].trim());
var endTime = turnNum(times[1].trim());
dataObj['period' + (j - 2)] = {
startTime: startTime,
endTime: endTime
};
}
}
jsonData.push(dataObj);
}
var jsonDataString = JSON.stringify(jsonData, null, 2);
document.getElementById('parsedData').textContent = jsonDataString;
});
}
parseData();
</script>
</body>
</html>