JavaScript(js)でcsvファイルを読み込み自動計算する(合計sum)

20211117

文字数[1850文字] この記事は2分19秒で読めます.

Logging

謎の訪問者さんが検索窓を使用して何度かググっているので要望にお応え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());
})();



2133番目の投稿です/752 回表示されています.

中の人🏠️

AIによるおすすめ記事

著者名  @taoka_toshiaki

※この記事は著者が40代前半に書いたものです.

Profile
高知県在住の@taoka_toshiakiです、記事を読んで頂きありがとうございます.
数十年前から息を吸うように日々記事を書いてます.たまに休んだりする日もありますがほぼ毎日投稿を心掛けています😅.
SNSも使っています、フォロー、いいね、シェア宜しくお願い致します🙇.
SNS::@taoka_toshiaki

OFUSEで応援を送る

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


タグ

々、, CSV, https, javascript, JS, sum, zipcomjavascripteaeeadebeeeaeaeabecsveeaeaeabeeaaadebfebebceebhtml, zipcomtooldemo, あたり, ググ, コード, サン, サンプル, ソース, それ, テーブル, デモ, パソコン, ファイル, プログラム, もの, リンク, 今回, 以前, 作成, 使用, 合計, 必要, 応え, 応用, 検索, 爆速, 自動, 自由, 要望, 計算, 訪問, 過去,