求js有经验这解决js读取csv文件问题

imleihuang 2012-11-24 04:34:38
现在有个小项目,是js读取csv文件的内容,处理csv文件的内容,然后将相应的内容显示在网页上。我想在已经把网页做好了,js文件对cvs文件的分析的代码也写好了。但是有个问题,想请大家解决。如果哪位高手能够帮忙,可以联系我QQ511972652, 有报酬。
引用
我现在有个文件夹,里面放的是很多csv文件,大概有200个(很多),我问别人所js文件不能读取本地文件。所以想问大家,怎么样才能让这个程序,读取到csv,让内容显示在文件上。当然可能这个程序语法还有问题,希望大家指出。谢谢。

我的代码如下。

<SCRIPT type="text/javascript">
var counterFirms = 10;
var importantFleets = 10;
var company;

var my_date = new Date();

var daten = 100;

var firmDatas = new Array();

var allFirms = new Array();

var lastTable = 0;

var kw = KalenderWoche(my_date.getFullYear(), my_date.getMonth() + 1, my_date.getDate());

//abrufen über XMLHttpRequest

function getRequest() {

var request = null;

if (window.XMLHttpRequest) {

request = new XMLHttpRequest();

} else if (window.ActiveXObject) {

request = new ActiveXObject("Microsoft.XMLHTTP");

} else {

alert("Current Browser has no XMLHttpRequest object!");

}

return request;

}

//liest die daten aus

function sendDataRequest(dateiname, nr, aktkw) {

var request = getRequest();

if (null == request) {

alert("Cancel");

return;

}

request.open("GET", dateiname, true);

request.onreadystatechange = function() {

switch (request.readyState) {

case 4: {

//erst 5 Wichtigeste Firmen abfragen

var daten = request.responseText;

if (nr == 0) {

setFirms(daten);

} else {

setFirmDatas(daten, nr, aktkw);
}

}

default:

return false;

break;

}

};

request.send(null);

}

// speichert die firmen im Array die Daten müssen mit split noch aufgeteilt werden

function setFirms(daten) {

allFirms = daten.split("\n");

for (var i = 1; i < allFirms.length; i++) {

//storage.set("allFirmsID"+i,allFirms[i].split(";")[1]);

// storage.set("allFirms"+i,allFirms[i].split(";")[0]);

//var liste = storage.getAll();

}

setImportantFirms();

displayValue();

getAllFleets();

}

// entscheidet welches die 5 wichtigesten Firmen sind

// Anhand Problemquote und Flottenanzahl

function setImportantFirms() {

var IDImportantFirms = new Array();

var liste = storage.getAll();

storage.set("company_Prio" + 1, allFirms[1].split(";")[0]);

storage.set("companyID_Prio" + 1 + "", allFirms[1].split(";")[1]);

storage.set("company_Prio" + 1 + "_Fleet", allFirms[1].split(";")[2]);

storage.set("company_Prio" + 1 + "_Problems", allFirms[1].split(";")[3]);

storage.set("company_Prio" + 1 + "_ProblemValue", parseFloat(liste["company_Prio" + 1 + "_Problems"]) / parseFloat(liste["company_Prio" + 1 + "_Fleet"]));

var fleetSize;

var problem;

var j;

//beginn bei 1er Flotte mit dem vergleich

for (var i = 2; i < allFirms.length; i++) {

var dataValues = allFirms[i].split(";");

fleetSize = dataValues[2];

fleetID = dataValues[1];

problem = dataValues[3];

j = 1;

if (parseFloat(fleetSize) != 0) {

//Rechenzeit Maximal Anzahl der O(Daten*5)

while ((parseFloat(problem) / parseFloat(fleetSize) < liste["company_Prio" + j + "_ProblemValue"] || (parseFloat(problem) / parseFloat(fleetSize) == liste["company_Prio" + j + "_ProblemValue"] && parseFloat(fleetSize) < liste["company_Prio" + j + "_Fleet"] ) || fleetID == 400 )

//spätestens beim 5 mit dem Sortieren aufhören

&& j < (1 + importantFleets)) {

j++;

};

if (j < importantFleets) {

for (var w = j; w < (importantFleets + 1); w++) {

storage.set("company_Prio" + (j + (importantFleets + 1) - w), liste["company_Prio" + (j + (importantFleets + 1) - w)]);

storage.set("companyID_Prio" + (j + (importantFleets + 1) - w) + "", liste["companyID_Prio" + (j + (importantFleets + 1) - w)]);

storage.set("company_Prio" + (j + (importantFleets + 1) - w) + "_Fleet", liste["company_Prio" + (j + (importantFleets + 1) - w) + "_Fleet"]);

storage.set("company_Prio" + (j + (importantFleets + 1) - w) + "_Problems", liste["company_Prio" + (j + (importantFleets + 1) - w) + "_Problems"]);

storage.set("company_Prio" + (j + (importantFleets + 1) - w) + "_ProblemValue", liste["company_Prio" + (j + (importantFleets + 1) - w) + "_ProblemValue"]);

}

}

storage.set("company_Prio" + j, allFirms[i].split(";")[0]);

storage.set("companyID_Prio" + j + "", allFirms[i].split(";")[1]);

storage.set("company_Prio" + j + "_Fleet", allFirms[i].split(";")[2]);

storage.set("company_Prio" + j + "_Problems", allFirms[i].split(";")[3]);

storage.set("company_Prio" + j + "_ProblemValue", parseFloat(liste["company_Prio" + j + "_Problems"]) / parseFloat(liste["company_Prio" + j + "_Fleet"]));

}

}

}

//schreibt die daten in ein array

function setFirmDatas(daten, nr, varkw) {

var liste = storage.getAll();

if (varkw < (kw - 1)) {

firmDatas = daten.split("\n");

storage.set(("problemLength" + varkw + "Prio" + (nr - 1)), firmDatas.length - 2);

} else {

firmDatas = daten.split("\n");

storage.set(("problemLength" + varkw + "Prio" + (nr - 1)), firmDatas.length - 2);

for (var dat = 1; dat < firmDatas.length; dat++) {

var t = nr - 1;

storage.set("Prio" + t + "_data" + dat, firmDatas[dat]);

}

}

if (nr != 20) {

grafikDraw(nr);

} else {

storage.set("company", $("select#chFleets :selected").text());

storage.set("open_company_nr", (19));

window.location = "details_1.0.html";

}

//calculateKW();

}

//grafik erzeugen und Firma auslesen

function firmenDetails(nr) {

//Fehler der beim setzen der Daten aufgetreten ist muss mit +1 behoben werden.

getFirmsData((nr + 1));

}

//erzeugt die Grafik

function grafikDraw(nr) {

lastTable = nr;

var liste = storage.getAll();

//altes canvas Element löschen bevor neues erzeugen

loeschen();

var bar;

//neue canvas Element(grafische Datei) erzeugen

bar = new RGraph.Bar('cvs_tablle1', [parseFloat(liste["problemLength" + (kw - 2) + "Prio" + (nr - 1)]), parseFloat(liste["problemLength" + (kw - 1) + "Prio" + (nr - 1)]), 0]);

bar.Set('chart.title', "Problemverlauf von " + document.getElementById("Prio" + (nr - 1)).innerHTML);

//Anzahl der statistiken

bar.Set('chart.labels', ["KW " + (kw - 2), "KW " + (kw - 1), "KW" + kw]);

bar.Draw();

document.getElementById("problemRate").innerHTML = "Problem Rate:" + 100.0 * parseFloat(liste["company_Prio" + (nr) + "_ProblemValue"]) + " %";

}

//grafik wird gelöscht

function loeschen() {

document.getElementById("problemRate").innerHTML = "";

var canvas = document.getElementById('cvs_tablle1');

var context = canvas.getContext('2d');

context.clearRect(0, 0, canvas.width, canvas.height);

}


</SCRIPT>



...全文
351 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧