Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.11.2014, 20:24
Новичок на форуме
Отправить личное сообщение для sx88 Посмотреть профиль Найти все сообщения от sx88
 
Регистрация: 03.11.2014
Сообщений: 7

Парсинг xls таблицы.
Всем доброго времени суток.
Подскажите в какую сторону копать: есть xls таблица, к примеру в ячейке А1 содержится наименование изделия (табуретка), в ячейке В1 стоит ее цена?
Если мне необходимо по условию найти "табуретка" и взять ее цену, как это реализовать?
Ответить с цитированием
  #2 (permalink)  
Старый 05.11.2014, 20:41
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Файл что ли екзеля парсить собираетесь? ДЛя екзеля есть VBA. Для веба сохраните в html или xml. WScript еще есть.
Ответить с цитированием
  #3 (permalink)  
Старый 05.11.2014, 20:44
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

WSrcipt

var excel = new ActiveXObject("Excel.Application"); 
	var ws = excel.Workbooks.Open(file_name).Worksheets;


Воркбука вся ваша.
Ответить с цитированием
  #4 (permalink)  
Старый 05.11.2014, 21:17
Новичок на форуме
Отправить личное сообщение для sx88 Посмотреть профиль Найти все сообщения от sx88
 
Регистрация: 03.11.2014
Сообщений: 7

Сообщение от kostyanet Посмотреть сообщение
WSrcipt

var excel = new ActiveXObject("Excel.Application"); 
	var ws = excel.Workbooks.Open(file_name).Worksheets;


Воркбука вся ваша.
"Профессор", что-то у вас карма отрицательная. Вы меня точно не обманываете? Шучу по-доброму.
А на самом деле: да, есть excel-файл. Необходимо вытянуть наменование = цена и передать эти параметры в html документ с ценами.
Думаю, как-то реализовать это через конвертацию xls в xml и через bash, perl вытягивать значения.
Ответить с цитированием
  #5 (permalink)  
Старый 05.11.2014, 21:24
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Лучше всего если конвертировать то в csv. Тогда с обработкой любым скриптовым языком ни малейших проблем не возникнет.
Иначе надо в любом случае искать готовые тяжеловесные библиотеки.
__________________
29375, 35
Ответить с цитированием
  #6 (permalink)  
Старый 05.11.2014, 21:26
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Да вот такие как вы мне всю карму и обосрали. Шучу по-доброму. А на самом деле х проссышь где это файл, почему нет при нем екзеля, зачем ковырять бинарный формат, флешки что ли перестали выпускать или проволока в интернет оборвалась... ваше дело.
Ответить с цитированием
  #7 (permalink)  
Старый 06.11.2014, 19:00
Новичок на форуме
Отправить личное сообщение для sx88 Посмотреть профиль Найти все сообщения от sx88
 
Регистрация: 03.11.2014
Сообщений: 7

Сообщение от kostyanet Посмотреть сообщение
Да вот такие как вы мне всю карму и обосрали. Шучу по-доброму. А на самом деле х проссышь где это файл, почему нет при нем екзеля, зачем ковырять бинарный формат, флешки что ли перестали выпускать или проволока в интернет оборвалась... ваше дело.
Хм Не понял к чему это все. Спасибо за совет и уделенное время

Сообщение от Aetae Посмотреть сообщение
Лучше всего если конвертировать то в csv. Тогда с обработкой любым скриптовым языком ни малейших проблем не возникнет.
Иначе надо в любом случае искать готовые тяжеловесные библиотеки.
Да, идея хороша Проще парсить csv, по крайней мере вид удобочитаемый
Ответить с цитированием
  #8 (permalink)  
Старый 06.11.2014, 22:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Оказалось что файл на руках! Уписаться можно, а сохранить его в хтмл и работать в его ДОМе - нельзя. Иначе в чем труд программиста будет заключаться? Это не считая что для xml наверно во всех языках есть встроенный парсер http://api.jquery.com/jquery.parsexml/

А как же чэсэвэ? А чсв это текст.

А как же WScript? А это не ява-скрипт, да?

Последний раз редактировалось kostyanet, 06.11.2014 в 22:46.
Ответить с цитированием
  #9 (permalink)  
Старый 06.11.2014, 22:51
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Дарю, осталось от одной тряхомудии. Собирает все данные, то есть со всех листов в текстовый файл разделитель табулятор. ВОт вам и чсв.

var total=0;
var ForReading = 1, ForWriting = 2, ForAppending = 8;
var TristateUseDefault = -2, TristateTrue = -1, TristateFalse = 0;

var WshShell = WScript.CreateObject("WScript.Shell");
strPath = WshShell.currentDirectory;

var fso = new ActiveXObject("Scripting.FileSystemObject");

open_excel();

function open_excel(){

	var file_name = fso.BuildPath(strPath, 'origin.xls');
	var excel = new ActiveXObject("Excel.Application"); 
	var ws = excel.Workbooks.Open(file_name).Worksheets;
	
	var res=[];
	
	for(var cnt=1; cnt<ws.Count; cnt++) {
	
		var sheet = ws(cnt);
		var row_cnt=0;
		
		while(true) {
			row_cnt++;
			var c = ''+sheet.Cells(row_cnt, 1).Value;
			if(c=='undefined')
				break;
			if(row_cnt > 65530)
				break;
			row=[];
			for(var j=1; j<8; j++)
				row.push(sheet.Cells(row_cnt,j).Value);
			res.push(row.join("\t"));
		}
	}
	excel.Quit();
	process(res);
	WScript.Echo('Total: '+cnt);
}

function process(res) {
	var out_file_name=fso.BuildPath(strPath, 'merge.txt');	
	var ts = fso.CreateTextFile(out_file_name, true, true);
	ts.Write(res.join("\n"));
	ts.Close();

}
Ответить с цитированием
  #10 (permalink)  
Старый 09.11.2014, 21:11
Новичок на форуме
Отправить личное сообщение для sx88 Посмотреть профиль Найти все сообщения от sx88
 
Регистрация: 03.11.2014
Сообщений: 7

kostyanet , спасибо за "подгон" )
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужен 1 скрипт создания таблицы с фильтром artsmart Работа 2 26.05.2014 13:12
фильтрация .csv таблицы br1ck Элементы интерфейса 0 13.11.2013 08:35
Через ajax отправить много данных из таблицы на сервер Heger jQuery 3 29.08.2012 18:51
Ширина таблицы Syltan (X)HTML/CSS 1 01.05.2010 22:33
Фиксированный заголовок таблицы ilshat Элементы интерфейса 6 20.12.2008 00:35