Перейти к содержимому

Фотография

Не записываются значения в Excel


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 2

#1 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 14 января 2011 - 11:14

function Main()
{
 var ExcelApp = Sys["OleObject"]("Excel.Application");
 ExcelApp.Application.Visible = true; 
 var workbook = ExcelApp["Workbooks"]["Open"]("C:/work/ic_vp/trunk/06.Test/TestCase/Test_Search/Autotest/1.xlsx",false,false);
 var EDRVP = new Array();
 EDRVP[0]="1234";
 EDRVP[1]="111";
 EDRVP[2]="222";
 EDRVP[3]="333";
 EDRVP[4]="444";
 var oRng = ExcelApp["Worksheets"](9)["Range"](ExcelApp["Worksheets"](9)["Cells"](1,1),ExcelApp["Worksheets"](9)["Cells"](5,1));
 oRng.Formula = EDRVP; 
 workbook.Save(); 
 ExcelApp.Quit();
}
Файл открывается, сохраняется и закрывается, но весь массив записывается в диапазон, а как записать і-ий єлемент в і-ую строку файла. Также проблема с помощью Cells - если указать )["Cells"](1,1), то записывает, а если с і, то відает ошибку, что пропущен ";"
function Main()
{
 var ExcelApp = Sys["OleObject"]("Excel.Application");
 ExcelApp.Application.Visible = true; 
 var workbook = ExcelApp["Workbooks"]["Open"]("C:/work/ic_vp/trunk/06.Test/TestCase/Test_Search/Autotest/1.xlsx",false,false);
 var EDRVP = new Array();
 EDRVP[0]="1234";
 EDRVP[1]="111";
 EDRVP[2]="222";
 EDRVP[3]="333";
 EDRVP[4]="444";
 for(var i=0;i<5;i++)
 {
  var s=String.fromCharCode(39)+EDRVP[i];
  ExcelApp["Worksheets"](9)["Cells"](1,1).Value =s;
 }
 workbook.Save(); 
 ExcelApp.Quit();
}

  • 0

#2 modbear

modbear

    Специалист

  • Members
  • PipPipPipPipPip
  • 548 сообщений

Отправлено 14 января 2011 - 14:25

Файл открывается, сохраняется и закрывается, но весь массив записывается в диапазон, а как записать і-ий єлемент в і-ую строку файла.

Надо предварительно сконвертировать JScript-массив в SafeArray-массив функцией ConvertJScriptArray, а затем транспонировать его (из "горизонтального" в "вертикальный") функцией Transpose:
oRng["Value"] = ExcelApp["WorksheetFunction"]["Transpose"](ConvertJScriptArray(EDRVP));


Также проблема с помощью Cells - если указать )["Cells"](1,1), то записывает, а если с і, то відает ошибку, что пропущен ";"

Мне кажется, проблема в том, что у вас счетчик цикла и элементов массива с 0, а в Office Automation API индексация везде с 1. Надо использовать ["Cells"](i+1, 1).  
  • 0

#3 gira13

gira13

    Активный участник

  • Members
  • PipPip
  • 80 сообщений
  • Город:Киев

Отправлено 17 января 2011 - 07:53

Огромное спасибо: попробовала оба варианта - работает
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных