как форматировать колонку ..
Всем привет. Есть csv файл с примерным содержанием ..
Account Number,"Name","Company" 01-000667,"George P Schell","Market Place Products" 01-002423,"Marc S Brittan","Madson & Huth Communication Co"... по сколько javascript на прямую не работает с файлами и по скольку у меня нет опыта с серверной частью, данные файла были вставлены в в body.. вопрос.. как можно обратиться к колонке Name и поменять формат с Name, Middle Initial, Last Name на формат Name, Last Name, Middle Initial для всех имен? Заранее спасибо! |
Вложений: 1
К примеру. Можно ли обратиться к колонке Name и все что ниже нее отсортировать чтобы отображалось в браузере не George P Schell а George Schell P и так все ниже стоящие имена?
Буду очень благодарна! ..) |
Цитата:
Цитата:
|
Вообще в современных браузерах вполне себе работает с файлами :) :
<!DOCTYPE HTML> <html lang="ru-RU"> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *{margin:0;padding:0} html, body{ width: 100%; height: 100%; } html, body, textarea, input{ font: 20px serif; background-color: #220; color: #ddf; } textarea{width: 100%; height: 90%; border: none; } </style> <script type="text/javascript"> function read(files){ //чтение файлов var i = files.length, reader = new FileReader(); reader.onload = function(){ example( reader.result ) }; reader.readAsText(files[--i]) } function arrayFromCSV( csv ){ var lines = csv.split(/[\r\n]+/), i = lines.length, //разбиваем на строки array = new Array(i); // создаём массив while(i--) array[i] = lines[i].split(','); //разбиваем по запятым, и заполняем массив return array } function arrayToCSV( array ){ var csv = ''; console.log(array) for(var i = 0, l = array.length; i<l; i++){ csv += (array[i] && array[i].join(',') || '') + '\r\n'; } return csv } function rearrangeCols( array, order ){ //поменять местами колонки var l = array.length, out = new Array(l); if(typeof order === 'number') order = Array.prototype.slice.call(arguments,1); //порядок может быть передан как массивом, ак и просто последовательно var i = order.length; while(l--){ out[l] = new Array(i); for(var j = i; j--;){ out[l][j] = array[l][order[j]]; } } return out } function rearrangeRows( array, order ){ //поменять местами ряды var l = array.length, out = [array[0]], def = array[0].length; if(typeof order === 'number') order = Array.prototype.slice.call(arguments,1); for(var i = 0, l = order.length; i<l; i++){ out.push( array[order[i]+1] || new Array(def) ); } return out } function id(i){return document.getElementById(i)} function example( csv ){ var table = arrayFromCSV( csv ), text = id('textarea'); text.value = arrayToCSV( table ); table = rearrangeCols( table, 0, 2, 1 ) text.value += '\n===== rearrangeCols( table, 0, 2, 1 ) =====\n' + arrayToCSV( table ); table = rearrangeRows( table, 1, 2, 0 ) text.value += '\n===== rearrangeRows( table, 0, 2, 1 ) =====\n' + arrayToCSV( table ); function rearrangeArray( array , first, second){ //меняет местами элементы массива var temp; temp = array[first]; array[first] = array[second]; array[second] = first; return array } function fixNames( array ){ var i = array.length, nameCell = 2; //орядковым номер ячесйки с именем while(i--){ if(array[i][nameCell]){ //если ячейча с порядковым номером 2 существует var name = array[i][nameCell] .slice(1,-1) //обрезаем кавычки .split(/\s+/); //разбиваем по пробелу if(name.length === 3) name[2] = name.splice(1,1,name[2])[0]; //меняем порядок array[i][nameCell] = '"' + name.join(' ') + '"'; //склеиваем обратно } } return array } text.value += '===== fixNames =====\n' + arrayToCSV( fixNames( table ) ); } </script> </head> <body> <input id="file" type="file" onchange="read(files)" /> <textarea id="textarea"></textarea> </body> </html> Цитата:
Тут хотят с помощью js решать вопросы к web-разработке не относящиеся, как раз такое люблю, потому помогу.)) |
Цитата:
Цитата:
|
Aetae, cпасибо !! :)
|
Часовой пояс GMT +3, время: 23:19. |