Обмен данными и управление Excel (разбираемся в применении библиотеки от AVALS) - страница 2

 
Freud:


а шаблон на библиотеку не ссылается?

А шаблон, то тут при чем? )

Тебе надо скинуть данные в эксель по строчно, по несколько записей в строке.

Как скидывать одну запись в ексель в шаблоне показано.

Для того что бы скинуть несколько строк нужно использовать цикл, и библиотека тут совсем не при чем.

Ты не можешь организовать цикл для сброса данных в эксель?

так и скажи

 
Freud:



а шаблон на библиотеку не ссылается?))))))))))))

я понимаю что дело не в библе. я ведь и написал в первом посте, просил подилиться премерами применения этой библы, то есть кто как шаблоны под свои нужды подстраивал. я по примерам разбираюсь

поищи в базе я(и не я один) скидывал.
 
Берл Лазару, все не иметься, хочется на форекс заработать ...
 
excelf:
Берл Лазару, все не иметься, хочется на форекс заработать ...
и заработает ведь собака))))
 
sanyooooook:

А шаблон, то тут при чем? )

Тебе надо скинуть данные в эксель по строчно, по несколько записей в строке.

Как скидывать одну запись в ексель в шаблоне показано.

Для того что бы скинуть несколько строк нужно использовать цикл, и библиотека тут совсем не при чем.

Ты не можешь организовать цикл для сброса данных в эксель?

так и скажи



я не могу организовать цикл для сброса данных в эксель
 

Попробуйте начать понимать/строить циклы

//+------------------------------------------------------------------+
//|                                                      shablon.mq4 |
//|                                             Viatcheslav Suvorov  |
//+------------------------------------------------------------------+
#property copyright "Viatcheslav Suvorov"
#property show_inputs
#include <WinUser32.mqh>

#import "mt4excel.dll"

bool  ExcelOpen();//Открывает Excel и создает чистую страницу  
bool  ExcelClose();//Закрывает Excel
bool  ExcelOpenPattern(int NumPatt);//Открывает Excel по шаблону
bool  ExcelOpenFile(string FileName);//Открывает файл Excel
bool  ExcelSave();//Сохраняем файл
bool  ExcelSaveAs(string FileName);//Сохраняем файл в FileName
bool  ExcelAddSheet(string Name);//Добавить лист и сделать его активным    
bool  ExcelSetFormulaCell(int X,int Y,string Value);//Записать формулу в ячейку
double  ExcelGetValueCell(int X,int Y);//Считать число из ячейки
string  ExcelGetTextCell(int X,int Y);//Считать текст из ячейки
string  ExcelGetFormulaCell(int X,int Y);//Считать формулу из ячейки
/*TypeD - тип диаграммы:
xl3DArea -4098        xl3DAreaStacked 78      xl3DAreaStacked100 79   xl3DBarClustered 60     xl3DBarStacked 61    xl3DBarStacked100 62 
xl3DColumn -4100      xl3DColumnClustered 54  xl3DColumnStacked 55    xl3DColumnStacked100 56 xl3DLine -4101       xl3DPie -4102 
xl3DPieExploded 70    xlArea 1                xlAreaStacked 76        xlAreaStacked100 77     xlBarClustered 57    xlBarOfPie 71 
xlBarStacked 58       xlBarStacked100 59      xlBubble 15             xlBubble3DEffect 87     xlColumnClustered 51 xlColumnStacked 52 
xlColumnStacked100 53 xlConeBarClustered 102  xlConeBarStacked 103    xlConeBarStacked100 104 xlConeCol 105        xlConeColClustered 99 
xlConeColStacked 100  xlConeColStacked100 101 xlCylinderBarClustered 95 xlCylinderBarStacked 96 xlCylinderBarStacked100 97 xlCylinderCol 98 
xlCylinderColClustered 92 xlCylinderColStacked 93 xlCylinderColStacked100 94 xlDoughnut -4120 xlDoughnutExploded 80 xlLine 4 xlLineMarkers 65 
xlLineMarkersStacked 66 xlLineMarkersStacked100 67 xlLineStacked 63 xlLineStacked100 64 xlPie 5 xlPieExploded 69 xlPieOfPie 68 xlPyramidBarClustered 109 
xlPyramidBarStacked 110 xlPyramidBarStacked100 111 xlPyramidCol 112 xlPyramidColClustered 106 xlPyramidColStacked 107 xlPyramidColStacked100 108 
xlRadar -4151 xlRadarFilled 82 xlRadarMarkers 81 xlStockHLC 88 xlStockOHLC 89 xlStockVHLC 90 xlStockVOHLC 91 xlSurface 83 
xlSurfaceTopView 85 xlSurfaceTopViewWireframe 86 xlSurfaceWireframe 84 xlXYScatter -4169 xlXYScatterLines 74 xlXYScatterLinesNoMarkers 75 
xlXYScatterSmooth 72 xlXYScatterSmoothNoMarkers 73 */  
bool ExcelSetDiagramma(int TypeD,string Title,string XRange,string YRange,int Left,int Top,int Riht,int Bottom);//Добавляет диаграму
bool ExcelDiagrammaAddRange();//Добавить данных в диаграмму. Первая строка - заголовок
bool  ExcelSetValueCell(int X,int Y,double Value);//Записать число в ячейку
bool  ExcelSetTextCell(int X,int Y,string Value);//Записать текст в ячейку
bool ExcelSetRange(string Range);//Запомнить диапазон
string ExcelGetFormat();//Возвращает формат диапазона
bool ExcelSetFormat(string Format);//Задать формат для диапозана
bool ExcelSetFormula(string Formula);//Записать формулу в диапазон
bool ExcelIsFormula();//true если в диапазоне формула
int ExcelRangeCount();//Кол-во ячеек в диапазоне
string ExcelRangeAdress();//Адресс диапазона
bool ExcelRangeColumnWidth(int Width);//Ширина диапазона
bool ExcelRangeRowHeight(int Height);//Высота диапазона
bool ExcelRangeInteriorColor(int Color);//Цвет фона диапазона
bool ExcelRangeFontColor(int Color);//Цвет шрифта диапазона
int ExcelGetLastErrorCode();//Код последней ошибки Excel
string ExcelGetLastErrorText();//Текст последней ошибки Excel
#import

int start()
  { 
 int i,N=300;
 string Symb=Symbol();
        if (ExcelOpen()) Print("Уcпешно открыли Excel"); else Print("Не открывается Excel:",ExcelGetLastErrorText());//Открываем Excel        
        ExcelSetTextCell(1,1,"Инструмент");
        ExcelSetTextCell(2,2,Symb);        
        
  for (i=0;i<N;i++){
        ExcelSetValueCell(1,i+3,i);   
        ExcelSetTextCell(2,i+3,dataConv(iTime(Symb,0,i))); 
        ExcelSetValueCell(3,i+3,iOpen(Symb,0,i));        
       
        }//for i    
        
   return(0);
  }
void deinit()
{string Name=StringConcatenate("C:\\",Symbol(),".xls");
   ExcelSaveAs(Name);
   ExcelClose();
  }

//+------------------------------------------------------------------+          
//
//+------------------------------------------------------------------+
string dataConv(datetime T)
  {
  return(StringConcatenate(" ",TimeYear(T),"/",ItS(TimeMonth(T),2),
  "/",ItS(TimeDay(T),2)," ",ItS(TimeHour(T),2),":",
  ItS(TimeMinute(T),2)));
  }
//+------------------------------------------------------------------+
//
//+------------------------------------------------------------------+
 string ItS(int Vars, int Pw0=2, string Filler="0")
  {
       string   Fils="";int Pw=Pw0;
       if (Vars<0) Pw--;
   for (int i=Pw-1;i>0;i--) 
      if (MathPow(10,i)>Vars) Fils=StringConcatenate(Fils,Filler);
      return(StringConcatenate(Fils,Vars));
  }
//+------------------------------------------------------------------+          
//

 
спасибо щас попробую дальше сам.)
 
Freud:
спасибо щас попробую дальше сам.)

У него X и Y местами перепутаны

 
#import

int start()
  { 
  
        if (ExcelOpen()) Print("Уcпешно открыли Excel"); else Print("Не открывается Excel:",ExcelGetLastErrorText());//Открываем Excel        
        
        ExcelSetTextCell(1,1,"EURUSD");       
        ExcelSetTextCell(1,3,"GBPUSD");       
        ExcelSetTextCell(1,5,"USDCHF");
      
        
        
        ExcelSetValueCell(2,1,iOpen("EURUSD",PERIOD_M1,0));        
        ExcelSetValueCell(2,3,iOpen("GBPUSD",PERIOD_M1,0));             
        ExcelSetValueCell(2,5,iOpen("USDCHF",PERIOD_M1,0));
      
                
             
        
                   
      bool NeedLoop=true;  
        double lastEURUSD,lastGBPUSD,lastUSDCHF;
        double curEURUSD,curGBPUSD,curUSDCHF;
        while(NeedLoop){           
          curEURUSD=iOpen("EURUSD",PERIOD_M1,0);
          curGBPUSD=iOpen("GBPUSD",PERIOD_M1,0);
          curUSDCHF=iOpen("USDCHF",PERIOD_M1,0);
          if  (lastEURUSD!=curEURUSD){
            lastEURUSD=curEURUSD;
            ExcelSetValueCell(2,1,iOpen("EURUSD",PERIOD_M1,0));                    
          }
          if  (lastGBPUSD!=curGBPUSD){
            lastGBPUSD=curGBPUSD;
            ExcelSetValueCell(2,3,iOpen("GBPUSD",PERIOD_M1,0));                    
          }          
          if  (lastUSDCHF!=curUSDCHF){
            lastUSDCHF=curUSDCHF;
            ExcelSetValueCell(2,5,iOpen("USDCHF",PERIOD_M1,0));                    
          }                              
          Sleep(1000);
        }//while     
        
   return(0);
  }

void deinit()
  {
   ExcelSaveAs("C:\proba.xls");
   ExcelClose();
  }
в итоге сделал вот так, рассортировал на одном листе 3 инструмента как пример. теперь нужно растянуть данные на n баров по истории вниз. надо как санёёёёёёёёк подсказал организовать цикл сброса данных в файл, но как его вставить правильно именно в эту конструкцию. но уже не вс остоянии, ибо вхламммммммм................
 
Freud:
в итоге сделал вот так, рассортировал на одном листе 3 инструмента как пример. теперь нужно растянуть данные на n баров по истории вниз. надо как санёёёёёёёёк подсказал организовать цикл сброса данных в файл, но как его вставить правильно именно в эту конструкцию. но уже не вс остоянии, ибо вхламммммммм................

замени в моем шаблоне индексы.

for (i=0;i<N;i++){
        ExcelSetValueCell(i+3,1,i);   
        ExcelSetTextCell(i+3,2,dataConv(iTime(Symb,0,i))); 
        ExcelSetValueCell(i+3,3,iOpen(Symb,0,i));        
       
        }//for i 
// как видишь - так будет по истории вниз
 
Причина обращения: