JavaScript(js)でcsvファイルを読み込み自動計算する(合計sum)
この投稿は1年以上前に公開されました。 現在の情報とは異なる可能性がありますので、ご了承ください。
謎の訪問者さんが検索窓を使用して何度かググっているので要望にお応えJavaScript(js)でcsvファイルを読み込み自動計算する(合計sum)というものを作りました。以前、csvを元にテーブルを作成するものを作っていました、ソースコードはそれを応用して作っています。実際、数万行に渡るファイルを自動計算するには、かなり爆速のパソコンが必要になります。このプログラムで耐えれるのは精々、1,000行あたりだと思います。
過去のコードと今回のサンプルデモのリンクを貼っときます。
どうぞご自由にお使いください。
https://zip358.com/tool/demo47/
"use strict";
class CsvCalc
{
constructor (filename,elementId)
{
this.filename = filename;
this.elementId = elementId;
this.datas = null;
this.sum = [];
}
async getData()
{
try {
const response = await fetch(this.filename);
if (!response.ok) throw new Error(`HTTP Error: ${response.status}`);
this.datas = await response.text();
} catch (err) {
console.error("データ取得エラー:", err);
this.datas = "";
}
return this;
}
csvSplit()
{
let separate1 = /\r?\n/;
let separate2 = ",";
let datas = (this.datas?.split(separate1))?.map(function(row){
return (row?.split(separate2))?.map(function(col){
return col;
});
});
this.datas = datas.filter(row => row.length > 0);
return this;
}
getSum()
{
let sum =[];
for (const data of this.datas) {
(data).map(function(val,index,array){
sum[index] = (isNaN(parseInt(sum[index]))?0:parseInt(sum[index])) + parseInt(array[index]);
});
}
this.sum = sum;
return this;
}
printSum()
{
document.getElementById(this.elementId).textContent = this.sum.join(',');
}
}
(async ()=>{
await (new CsvCalc("math.csv?", "sum"))
.getData()
.then(obj => obj.csvSplit().getSum().printSum());
})();