citationSheetParse.js 6.76 KiB
//
// begining of xlsx to json coversion
//
var jsonContent = [];
var bibAuthors = "";
var bit1stAuthorLN ="";
/* set up XMLHttpRequest */
var url = "./content/citation_FGDI.xlsx";
var xmlHttpRequest = new XMLHttpRequest();
xmlHttpRequest.open("GET", url, true);
xmlHttpRequest.responseType = "arraybuffer";
xmlHttpRequest.onload = function (e) {
    var arraybuffer = xmlHttpRequest.response;
    // convert data to binary string //
    var data = new Uint8Array(arraybuffer);
    var arr = new Array();
    for (var i = 0; i != data.length; ++i) arr[i] = String.fromCharCode(data[i]);
    var bstr = arr.join("");
    // Call XLSX //
    var workbook = XLSX.read(bstr, {
        type: "binary"
    });
    // DO SOMETHING WITH workbook HERE //
    var first_sheet_name = workbook.SheetNames[0];
    // Get worksheet //
    var worksheet = workbook.Sheets[first_sheet_name];
    var jsonOutput = XLSX.utils.sheet_to_json(worksheet);
    // console.log(jsonOutput);
    for (i = 0; i < jsonOutput.length; i++) {
        var authors;
        if (jsonOutput[i].Authors != undefined){
            authors = jsonOutput[i].Authors.replace("and ", "").trim().split(",");
        var bibAuthors;
        var item = {
            "item": {
                "title": "",
                "project": "",
                "authors": [],
                "imageLink": "",
                "keywords": "",
                "journal": {
                    "name": "journal",
                    "volume": "",
                    "year": "",
                    "pages": ""
                "conference":{
                    "name":"",
                    "place":"",
                    "date":""
                "DOI": "",
                "publisher":"",
                "type":"",
                "project":"",
                "reviewed":"",
                "open":""
            "links": {
"pdf": "", "url": "", "demo": "" }, "bibtex" : "" } bibAuthors = ""; bit1stAuthorLN =""; for (j = 0; j < authors.length; j++) { var author = { "firstName": "", "lastName": "" } if (authors[j].trim().split(" ").length == 1) { author["firstName"] = authors[j].trim().split(".")[0]; author["lastName"] = authors[j].trim().split(".")[1]; item["item"].authors.push(author); bibAuthors+=authors[j].trim().split(".")[1] + ", "+ authors[j].trim().split(".")[0]+ " and "; } else if (authors[j].trim().split(" ").length == 2) { author["firstName"] = authors[j].trim().split(" ")[0]; author["lastName"] = authors[j].trim().split(" ")[1]; item["item"].authors.push(author); bibAuthors+=authors[j].trim().split(" ")[1] + ", "+ authors[j].trim().split(" ")[0]+ " and "; } else if (authors[j].trim().split(" ").length == 3) { author["firstName"] = authors[j].trim().split(" ")[0]; author["lastName"] = authors[j].trim().split(" ")[2]; item["item"].authors.push(author); bibAuthors+=authors[j].trim().split(" ")[2] + ", "+ authors[j].trim().split(" ")[0]+ " and "; } } if (jsonOutput[i].Keywords != undefined) { item["item"].keywords = jsonOutput[i].Keywords.split(","); } else { item["item"].keywords = jsonOutput[i].Keywords; } if (authors[0].split(" ").length == 3 ){ bit1stAuthorLN = authors[0].split(" ")[2]; } else if (authors[0].split(" ").length == 2 ){ bit1stAuthorLN = authors[0].split(" ")[1]; } else if (authors[0].split(" ").length == 1 ){ bit1stAuthorLN = authors[0].split(" ")[0]; } item["item"].title = jsonOutput[i].Titel; item["item"].project = jsonOutput[i].Project ? jsonOutput[i].Project : "" item["item"].imageLink = jsonOutput[i]["Path to demo image"] ? jsonOutput[i]["Path to demo image"] : "" item["item"].journal.name = jsonOutput[i].Journal ? jsonOutput[i].Journal : "" item["item"].journal.volume = jsonOutput[i].Volume ? jsonOutput[i].Volume : "" item["item"].journal.year = jsonOutput[i].Year ? jsonOutput[i].Year : "" item["item"].journal.pages = jsonOutput[i].Pages ? jsonOutput[i].Pages : "" item["item"].conference.name = jsonOutput[i].Conference ? jsonOutput[i].Conference : "" item["item"].conference.place = jsonOutput[i]["City and Country"] ? jsonOutput[i]["City and Country"] : "" item["item"].conference.date = jsonOutput[i].Date ? jsonOutput[i].Date : "" item["item"].publisher = jsonOutput[i].Publisher ? jsonOutput[i].Publisher : "" item["item"].type = jsonOutput[i]["Type of Work"] ? jsonOutput[i]["Type of Work"] : "" item["item"].project = jsonOutput[i].Project ? jsonOutput[i].Project : "" item["item"].reviewed = jsonOutput[i]["Peer-Reviewed"] ? jsonOutput[i]["Peer-Reviewed"] : "" item["item"].open = jsonOutput[i]["Open Access"] ? jsonOutput[i]["Open Access"] : "" item["item"].DOI = jsonOutput[i].DOI ? jsonOutput[i].DOI : "" item["links"].pdf = jsonOutput[i].PDF_Link ? jsonOutput[i].PDF_Link : "" item["links"].url = jsonOutput[i].URL ? jsonOutput[i].URL : "" item["links"].demo = jsonOutput[i].Demo ? jsonOutput[i].Demo : ""
var month = ""; if (jsonOutput[i].Date != undefined){ month = jsonOutput[i].Date.toString().split(",")[0].trim(); } //// BibTex ///////////////////// item["bibtex"] = "@article{"+ bit1stAuthorLN + jsonOutput[i].Year +","+ "title={"+ jsonOutput[i].Titel + "},author={"+ bibAuthors.trim().substring(0, bibAuthors.trim().lastIndexOf(" ")) + "},journal={"+ jsonOutput[i].Journal + "},volume={"+ jsonOutput[i].Volume + "},month={"+ month + "},pages={"+ jsonOutput[i].Pages + "},year={"+ jsonOutput[i].Year + "},DOI ={"+ jsonOutput[i].DOI+ "},url ={"+ jsonOutput[i].URL+ "}}" jsonContent.push(item); if ( i == jsonOutput.length - 1) { console.log("Add the paper ....") // Start loading/adding the paper content to the page here ..... for (var j = 0; j < 6; j++) { addpaper(jsonContent[j]); //Do something } document.getElementById("papercount").innerHTML = "1 - 6" + " (" + jsonContent.length + ")"; } } //console.log(jsonContent); } xmlHttpRequest.send(); // str = str.substring(0, lastIndex); // // ending of xlsx to json coversion //