csv.js

来自「OA系统实现以下功能: a、个人办公,我的办公桌 b、公文管理 c、工作流」· JavaScript 代码 · 共 82 行

JS
82
字号
/*	Copyright (c) 2004-2006, The Dojo Foundation	All Rights Reserved.	Licensed under the Academic Free License version 2.1 or above OR the	modified BSD license. For more information on Dojo licensing, see:		http://dojotoolkit.org/community/licensing.shtml*/dojo.provide("dojo.data.old.format.Csv");dojo.require("dojo.lang.assert");dojo.data.old.format.Csv = new function () {	this.getArrayStructureFromCsvFileContents = function (csvFileContents) {		dojo.lang.assertType(csvFileContents, String);		var lineEndingCharacters = new RegExp("\r\n|\n|\r");		var leadingWhiteSpaceCharacters = new RegExp("^\\s+", "g");		var trailingWhiteSpaceCharacters = new RegExp("\\s+$", "g");		var doubleQuotes = new RegExp("\"\"", "g");		var arrayOfOutputRecords = [];		var arrayOfInputLines = csvFileContents.split(lineEndingCharacters);		for (var i in arrayOfInputLines) {			var singleLine = arrayOfInputLines[i];			if (singleLine.length > 0) {				var listOfFields = singleLine.split(",");				var j = 0;				while (j < listOfFields.length) {					var space_field_space = listOfFields[j];					var field_space = space_field_space.replace(leadingWhiteSpaceCharacters, "");					var field = field_space.replace(trailingWhiteSpaceCharacters, "");					var firstChar = field.charAt(0);					var lastChar = field.charAt(field.length - 1);					var secondToLastChar = field.charAt(field.length - 2);					var thirdToLastChar = field.charAt(field.length - 3);					if ((firstChar == "\"") && ((lastChar != "\"") || ((lastChar == "\"") && (secondToLastChar == "\"") && (thirdToLastChar != "\"")))) {						if (j + 1 === listOfFields.length) {							return null;						}						var nextField = listOfFields[j + 1];						listOfFields[j] = field_space + "," + nextField;						listOfFields.splice(j + 1, 1);					} else {						if ((firstChar == "\"") && (lastChar == "\"")) {							field = field.slice(1, (field.length - 1));							field = field.replace(doubleQuotes, "\"");						}						listOfFields[j] = field;						j += 1;					}				}				arrayOfOutputRecords.push(listOfFields);			}		}		return arrayOfOutputRecords;	};	this.loadDataProviderFromFileContents = function (dataProvider, csvFileContents) {		dojo.lang.assertType(dataProvider, dojo.data.old.provider.Base);		dojo.lang.assertType(csvFileContents, String);		var arrayOfArrays = this.getArrayStructureFromCsvFileContents(csvFileContents);		if (arrayOfArrays) {			var arrayOfKeys = arrayOfArrays[0];			for (var i = 1; i < arrayOfArrays.length; ++i) {				var row = arrayOfArrays[i];				var item = dataProvider.getNewItemToLoad();				for (var j in row) {					var value = row[j];					var key = arrayOfKeys[j];					item.load(key, value);				}			}		}	};	this.getCsvStringFromResultSet = function (resultSet) {		dojo.unimplemented("dojo.data.old.format.Csv.getCsvStringFromResultSet");		var csvString = null;		return csvString;	};}();

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?