javascript怎么修改csv文件

JavaScript021

javascript怎么修改csv文件,第1张

如果是基于浏览器,那就不能修改。

js读取CSV格式数据,参考如下:

<script type="text/javascript">

// This will parse a delimited string into an array of

// arrays. The default delimiter is the comma, but this

// can be overriden in the second argument.

function CSVToArray( strData, strDelimiter ){

// Check to see if the delimiter is defined. If not,

// then default to comma.

strDelimiter = (strDelimiter || ",")

// Create a regular expression to parse the CSV values.

var objPattern = new RegExp(

(

// Delimiters.

"(\\" + strDelimiter + "|\\r?\\n|\\r|^)" +

// Quoted fields.

"(?:\"([^\"]*(?:\"\"[^\"]*)*)\"|" +

// Standard fields.

"([^\"\\" + strDelimiter + "\\r\\n]*))"

),

"gi"

)

// Create an array to hold our data. Give the array

// a default empty first row.

var arrData = [[]]

// Create an array to hold our individual pattern

// matching groups.

var arrMatches = null

// Keep looping over the regular expression matches

// until we can no longer find a match.

while (arrMatches = objPattern.exec( strData )){

// Get the delimiter that was found.

var strMatchedDelimiter = arrMatches[ 1 ]

// Check to see if the given delimiter has a length

// (is not the start of string) and if it matches

// field delimiter. If id does not, then we know

// that this delimiter is a row delimiter.

if (

strMatchedDelimiter.length &&

(strMatchedDelimiter != strDelimiter)

){

// Since we have reached a new row of data,

// add an empty row to our data array.

arrData.push( [] )

}

// Now that we have our delimiter out of the way,

// let's check to see which kind of value we

// captured (quoted or unquoted).

if (arrMatches[ 2 ]){

// We found a quoted value. When we capture

// this value, unescape any double quotes.

var strMatchedValue = arrMatches[ 2 ].replace(

new RegExp( "\"\"", "g" ),

"\""

)

} else {

// We found a non-quoted value.

var strMatchedValue = arrMatches[ 3 ]

}

// Now that we have our value string, let's add

// it to the data array.

arrData[ arrData.length - 1 ].push( strMatchedValue )

}

// Return the parsed data.

return( arrData )

}

</script>

json转csv的前提是,你的数据是jsonarray,而且只有比较特殊的数据可以在json和csv之间转换,请转换之前判断数据是否可以转换。

思路是,遍历array里所有数据,将每条数据设置成一个jsonobject,如果抛出一场则条过这条数据continue到下一条。然后遍历jsonobject的所有属性,将每个属性的值用逗号分割拼成字符串,所有属性遍历完毕后,判断如果当前这条不是array的最后一条,则在字符串最后加上一个'\r',否则不加。最终会拼成csv字符串。