Я в настоящее время работаю над проектом, где я читаю файл Excel с row By Data Data. Вот текущий код < /p>
const handleFileUpload = async (e) => {
// converting excel date value
const excelEpoch = 25568;
const millisecondsInDay = 86400000;
const jsTime = (jsonData[7][6] - excelEpoch) * millisecondsInDay;
const date = new Date(jsTime);
const file = e.target.files[0];
setFileName(file.name);
const data = await file.arrayBuffer();
const workbook = XLSX.read(data);
const worksheet = workbook.Sheets[workbook.SheetNames[0]];
console.log(worksheet);
const jsonData = XLSX.utils.sheet_to_json(worksheet, {
header: 1,
defval: "",
});
let waterExcel = []
let elecExcel = []
let gasExcel = []
console.log(jsonData);
const waterUnits = jsonData[6][2].toLowerCase();
const gasUnits = jsonData[6][9].toLowerCase();
const elecUnits = jsonData[6][14].toLowerCase();
const demandUnits = jsonData[6][16].toLowerCase();
for (var i = 7; i < jsonData.length; i++){
let waterCost;
if (jsonData[3] != ""){waterCost=jsonData[3]}else{waterCost=0}
let wasteWater;
if (jsonData[4] != ""){wasteWater=jsonData[4]}else{wasteWater=0}
let wasteWaterCost;
if (jsonData[5] != ""){wasteWaterCost=jsonData[3]}else{wasteWaterCost=0}
//water payload
if (jsonData[1] != "" && jsonData[2] != "") {
const payload = {
site_id: site_id,
units: waterUnits,
total_water: parseFloat(jsonData[2]),
water_cost: parseFloat(waterCost),
total_wastewater: parseFloat(wasteWater),
wastewater_cost: parseFloat(wasteWaterCost),
total_bill_cost: parseFloat(jsonData[1]),
//month: parseInt(month),
//year: parseInt(year),
// start_date: "2025-04-01",
// end_date: "2025-05-02",
};
waterExcel.push(payload)
}
//gas payload
let gasCost;
if (jsonData[i][10] != ""){gasCost=jsonData[i][10]}else{gasCost=0}
if (jsonData[i][8] != "" && jsonData[i][9] != "") {
const payload = {
site_id: site_id,
gas_units:gasUnits,
total_gas: parseFloat(jsonData[i][9]),
gas_cost: parseFloat(gasCost),
total_bill_cost: parseFloat(jsonData[i][8]),
// month: parseInt(month),
// year: parseInt(year),
// start_date: "2024-04-01",
// end_date: "2024-05-02",
};
gasExcel.push(payload)
}
// electricity payload
let elecCost;
if (jsonData[i][15] != ""){elecCost=jsonData[i][15]}else{elecCost=0}
let demandCost;
if (jsonData[i][17] != ""){demandCost=jsonData[i][17]}else{demandCost=0}
let globalAdjust;
if (jsonData[i][18] != ""){globalAdjust=jsonData[i][18]}else{globalAdjust=0}
if (jsonData[i][13] != "" && jsonData[i][14] != "" && jsonData[i][16] != "") {
const payload = {
site_id: site_id,
electricity_units: elecUnits,
total_electricity: parseFloat(jsonData[i][14]),
electricity_cost: parseFloat(elecCost),
demand_units: demandUnits,
total_demand: parseFloat(jsonData[i][16]),
demand_cost: parseFloat(demandCost),
total_bill_cost: parseFloat(jsonData[i][13]),
global_adjustment: parseFloat(globalAdjust),
// month: parseInt(month),
// year: parseInt(year),
// start_date: "2024-04-01",
// end_date: "2024-05-02",
};
elecExcel.push(payload)
}
}
console.log("water payloads")
console.log(waterExcel);
console.log("gas payloads")
console.log(gasExcel);
console.log("electricity payloads")
console.log(elecExcel);
}
< /code>
И вывод выходит, как и ожидается с 3 различными полезными нагрузками. Однако я пытаюсь реструктурировать полезную нагрузку так, чтобы она была более похожа на этот
, где месяц-годовой "Mar-2024"-первая столбца из листовой состицы. Я не уверен, как это сделать, любая помощь будет оценена. Вот пример электронной таблицы Excel
Подробнее здесь: https://stackoverflow.com/questions/796 ... -a-payload
Взять строки по данным строк из Excel и поместив их в полезную нагрузку ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как получить полезную нагрузку сообщения при обработке исключений @SqsListener
Anonymous » » в форуме JAVA - 0 Ответы
- 52 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как отправить полезную нагрузку в API контроллера из перехватчика после ее расшифровки
Anonymous » » в форуме JAVA - 0 Ответы
- 59 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как подписать полезную нагрузку с помощью закрытого ключа PSA в Котлине
Anonymous » » в форуме Android - 0 Ответы
- 55 Просмотры
-
Последнее сообщение Anonymous
-