Страница 1 из 1

Импорт данных Excel в план поизводства (JS)

Добавлено: 14 дек 2012, 19:40
savov
Всем доброго времени суток!
Возникла потребность загнать план ( excel - файл) в Галактику, сделав из него план производства.
Пробую сваять сие в JS.
Взялся за алгоритмы экспорта-импорта из XML, но что-то не идет дело. По ходу Галактике нужен специальный формат XML-исходника. Но если юзер сохраняет исходный файл как XML, то требовать от него еще каких-то операций по преобразованию - не разумно.
Были ли у кого похожие случаи? Не поделится ли кто идеями?

Re: Импорт данных Excel в план поизводства (JS)

Добавлено: 14 дек 2012, 20:50
Dmitry_Sol
А зачем так сложно?
JavaScript отлично напрямую работает с Excel

вот пример кода

Код: Выделить всё

var Excel,Book;
Excel = new ActiveXObject("Excel.Application");
fil1=GetFileName('*.xls','Выбор файла')
fil=JS_TranslatePath(fil1)
Debug.Print(fil1,fil)
Book =Excel.Workbooks.Open(fil);
Book.Application.Visible = true
var excel_sheet = Book.Worksheets("Отчет");
var i=6;
while(Book.ActiveSheet.Cells(i,3).Value!=null)   //Пока колонка 3 не станет пустой
{
 katmc.findmc(Book.ActiveSheet.Cells(i,3).Value)  
 katmc.getFirst()
 Debug.Print(katmc.name,Book.ActiveSheet.Cells(i,2).Value,Book.ActiveSheet.Cells(i,2).Value,Book.ActiveSheet.Cells(i,5).Value,katmc.name)
 if(Book.ActiveSheet.Cells(i,20).Value!=null)
  {
     stmnpl.findbymc(curpl(),1,katmc.nrec)
     if(stmnpl.getFirst()==0)
      {
       stmnpl.createst(curpl())
       stmnpl.tmc=1;
       stmnpl.cmc=katmc.nrec
       stmnpl.ced=katmc.ced
       stmnpl.rewrite();
       spmnpl.createsp(stmnpl.nrec,copz,curpl(),0,0,0);
       spmnpl.kolost=Book.ActiveSheet.Cells(i,20).Value
       spmnpl.sumost=Book.ActiveSheet.Cells(i,22).Value
       spmnpl.priceost=spmnpl.sumost/spmnpl.kolost
       spmnpl.rewrite()
      }
     else
      {
       spmnpl.findbyst(stmnpl.nrec)
         for(spmnpl.getFirst();ResultOfNavigation;spmnpl.getNext())
          {
           spmnpl.kolost=spmnpl.kolost+Book.ActiveSheet.Cells(i,20).Value
           spmnpl.sumost=spmnpl.sumost+Book.ActiveSheet.Cells(i,22).Value
           spmnpl.priceost=spmnpl.sumost/spmnpl.kolost
           spmnpl.rewrite()
          }
      }

  }
Debug.Print(katmc.name)
i++;
}
Book.Application.Quit()
А если хотите работать с XML, то для этого тоже есть виндовый парсер

Re: Импорт данных Excel в план поизводства (JS)

Добавлено: 21 дек 2012, 11:54
savov
Dmitry_Sol писал(а):А зачем так сложно?
JavaScript отлично напрямую работает с Excel
А вот функции GetFileName я что-то не могу найти в JS?

Re: Импорт данных Excel в план поизводства (JS)

Добавлено: 21 дек 2012, 13:20
Dmitry_Sol
Извиняюсь косячок вышел. :grin:
Это я из своей библиотеки, которую в Javascript подключал.

Опубликую в опыте. Может еще кому пригодится.

Re: Импорт данных Excel в план поизводства (JS)

Добавлено: 11 янв 2013, 15:35
savov
Dmitry_Sol писал(а):А вот функции GetFileName я что-то не могу найти в JS?
Можно и так:

Код: Выделить всё

Excel = new ActiveXObject("Excel.Application");
    fil1='';
    fil1=Excel.GetOpenFilename("Excel файл (*.xls*), *.xls*");       
Проверено, работает