Public
Edited
Jan 29, 2023
Insert cell
Insert cell
url = "https://ens.dk/sites/ens.dk/files/Statistik/anlaeg.xlsx"
Insert cell
data
SELECT
__EMPTY AS "TurbineNumber",
DATE '1900-01-01' + -2 + TRY_CAST(__EMPTY_1 as INTEGER) as "InstallationDate",
TRY_CAST(__EMPTY_2 as INTEGER) AS "CapacityInKwh",
TRY_CAST(__EMPTY_3 as FLOAT) AS "RotorDiameterInMeters",
TRY_CAST(__EMPTY_4 as FLOAT) AS "HubHeightInMeters",
FROM "data"
WHERE __EMPTY NOT LIKE 'Mølle%'
Insert cell
columns = data[0]
Insert cell
data = getExcel(proxy + url, "IkkeAfmeldte-Existing turbines", 0, 16)
Insert cell
Insert cell
proxy = "https://corsproxy.io/?"
Insert cell
getExcel = async (url, sheetname, skipCol, skipRow) => {
let buff = await d3.buffer(url);
let wb = xlsx.read(new Uint8Array(buff), { type: "array" });
let sheet = wb.Sheets[sheetname];
let range = xlsx.utils.decode_range(sheet["!ref"]);
range.s.r = skipRow;
range.s.c = skipCol;
sheet["!ref"] = xlsx.utils.encode_range(range);
return xlsx.utils.sheet_to_json(sheet);
}
Insert cell
Insert cell
xlsx = require("xlsx@0.17.0/dist/xlsx.core.min.js")
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more