Гость
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Построение графиков в Excel / 8 сообщений из 8, страница 1 из 1
02.02.2007, 16:12
    #34302953
Drako
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Здравствуйте. У меня возникла такая проблема. Может кто-нибудь знает, поможет решить.
Мне надо построить диаграммы в Excel с помощью программного кода на JS.
В принципе, я это сделал. Однако проблема в том, что при одной кривой - все нормально строиться, а вот при двух (количество и процентное соотношение) - первый график строиться нормально, а второй строиться относительно первого, а не относительно оси y=0.
Я выполняю процедуру на SQL и полученные данные загоняю в массив. Дальше я циклом вывожу данный массив в Excel:
Sheet.Cells(ir,ic)=RangeData[CountRow].data;
Sheet.Cells(ir+1,ic).value=RangeData[CountRow].zvonki;
Sheet.Cells(ir+2,ic).value=RangeData[CountRow].procent;
Значения выводяться нормально. Проблем нет.
В процессе я фиксирую нужные клетки. Например, после цикла:
chartCellsTiming2=Sheet.Cells((ir+2),(ic-1));
Дальше я выделяю нужную область:
Book.Sheets(10).Range(chartCellsTiming1, chartCellsTiming2)
Дальше просто строиться график (ввожу параметры графика - надписи, тип линии и т.п.).
Только почему-то он строит второй, как сумму.

И, может еще кто-нибудь знает, как строить графики на том же листе, где и численные значения, а не на новом листе (Book.Charts.Add();)?
...
Рейтинг: 0 / 0
05.02.2007, 08:49
    #34305374
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
05.02.2007, 14:01
    #34306408
Drako
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Спасибо, однако это на Delphi. На Delphi писать проще, чем на том же JS и VBS.
Меня интересует, как сделать именно на JavaScript.
Почему при выделении области - он строит второй график (линию) как сумму первого и второго?
...
Рейтинг: 0 / 0
05.02.2007, 14:40
    #34306577
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Drako
На Delphi писать проще, чем на том же JS

Не теоретезируйте, а, если действительно хотоите что-нить сделать, возьмите и попробуйте... Какая разница из чего дергать ОЛЮ? Поищите Word || Excel тут - выкладывались примеры работы...
Drako
Почему при выделении области - он строит второй график (линию) как сумму первого и второго?

Смотрю в книгу - вижу ... ?
Ex_Soft
Bi=sin(Ai)
Ci=cos(Ai)
Di=Bi+Ci

_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
05.02.2007, 17:42
    #34307296
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
<html>
  <head>
    <title>Test M$ Excel</title>
<script type="text/javascript">
<!--
function TestCOM()
{
   var
     oFS=null,
     SignatureDoc="E:\\Soft.src\\JavaScript\\Test\\COM\\Excel_tst.xls",
     OutputDoc="E:\\Soft.src\\JavaScript\\Test\\COM\\Excel_out.xls",
     MSExcelExists,
     OpenOfficeOrgExists,
     MSExcel=null,
     Workbooks,
     Workbook,
     Sheets,
     Sheet,
     i,
     Mess,
     Range,
     MyChart,
     Cells,
     Series,
     Value;

   if(!(oFS=new ActiveXObject("Scripting.FileSystemObject")))
   {
      alert("!Scripting.FileSystemObject");
      return;
   }

   if(!oFS.FileExists(SignatureDoc))
   {
      alert("!FileExists");
      return;
   }

   /*
   try
   {
      MSExcel=new ActiveXObject("com.sun.star.ServiceManager");
      OpenOfficeOrgExists=true;
   }
   catch(Exception)
   {
      alert(Exception.name+": "+Exception.message);
      alert(MSExcel);
      OpenOfficeOrgExists=false;
   }
   */

   MSExcel=null;
   //alert( 1 );
   //MSExcel=GetObject("e:\\Test1.xls","Excel.Application");
   //alert( 2 );
   //
   // PRB: Cannot Call GetObject from Script in IE to Access Running Object
   // http://support.microsoft.com/kb/q239470/
   //

   if(!MSExcel)
   {
      try
      {
         MSExcel=new ActiveXObject("Excel.Application");
         MSExcelExists=true;
      }
      catch(Exception)
      {
         alert(Exception.name+": "+Exception.message);
         MSExcelExists=false;
      }
   }

   if(!MSExcel)
   {
      alert("!Excel.Application");
      return;
   }

   MSExcel.Visible=true;
   MSExcel.DisplayAlerts=false;

   Workbooks=MSExcel.Workbooks;
   Workbook=Workbooks.Add;
   Sheets=Workbook.Sheets;
   Sheet=Workbook.ActiveSheet;

   for(i= 1 ; i<= 20 ; ++i)
   {
      Mess="A"+i;
      Range=Sheet.Range(Mess);

      Range.Value=i;

      Mess="B"+i;
      Range=Sheet.Range(Mess);

      Mess="=SIN(A"+i+")";
      Range.Formula=Mess;

      Mess="C"+i;
      Range=Sheet.Range(Mess);

      Mess="=COS(A"+i+")";
      Range.Formula=Mess;

      Mess="D"+i;
      Range=Sheet.Range(Mess);

      Mess="=B"+i+"+C"+i;
      Range.Formula=Mess;
   }

   MyChart=MSExcel.Charts.Add;
   //MyChart.ChartType= 65 ;  // xlLineMarkers
   MyChart.ChartType= 4 ; // xlLine

   Cells=Sheet.Cells;
   Range=Cells.SpecialCells( 11  /*xlCellTypeLastCell*/);
   Mess="A";
   Mess="B1:"+String.fromCharCode(Mess.charCodeAt( 0 )+Range.Column- 1  - 1  /* last -1 especially 4 'C' */)+Range.Row;
   Range=Sheet.Range(Mess);
   MyChart.SetSourceData(Range,  2  /*xlColumns*/);

   MyChart=MyChart.Location( 2  /*xlLocationAsObject*/, "Лист1");
   Series=MyChart.SeriesCollection.NewSeries();

   Value=MyChart.SeriesCollection.Count;

   Mess="A1:A20";
   Range=Sheet.Range(Mess);

   for(i=Value; i> 0 ; --i)
   {
      MyChart.SeriesCollection(i).XValues=Range;
      switch(i)
      {
         case  1  :
         {
            MyChart.SeriesCollection(i).Name="sin";
            break;
         }
         case  2  :
         {
            MyChart.SeriesCollection(i).Name="cos";
            break;
         }
      }
   }

   Mess="D1:D20";
   Range=Sheet.Range(Mess);
   Series.Values=Range;
   Series.Name="sin+cos";

   MyChart.HasTitle=true;
   MyChart.ChartTitle.Characters.Text="Name of Chart";
   MyChart.Axes( 1  /*xlCategory*/,  1  /*xlPrimary*/).HasTitle=true;
   MyChart.Axes( 1  /*xlCategory*/,  1  /*xlPrimary*/).AxisTitle.Characters.Text="Name of Category";
   MyChart.Axes( 2  /*xlValue*/,  1  /*xlPrimary*/).HasTitle=true;
   MyChart.Axes( 2  /*xlValue*/,  1  /*xlPrimary*/).AxisTitle.Characters.Text="Name of Value";

   MyChart.HasLegend=true;
   MyChart.Legend.Position=- 4107 ; // 0xFFFFEFF5; // xlBottom

   Workbook.SaveAs(OutputDoc);
   Workbook.Close;

   MSExcel.Quit();

   alert("oB!!!");
}
// -->
</script>
  </head>
  <body onload="TestCOM()">
  </body>
</html>
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
07.02.2007, 12:20
    #34312081
Drako
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Спасибо, конечно, только я спрашивал не об этом. Между прочим тоже можно сделать проще.
...
Рейтинг: 0 / 0
07.02.2007, 12:25
    #34312112
Drako
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
То, что я спрашивал, почему на одном графике строилась вторая кривая, как сумма первой и второй - это оказалось не тот тип графика был. Я ставил 66, а надо было 4, например.
Кто-нибудь знает, где можно посмотреть, какие графики какое имеет значение и т.п.? А то при записи макроса, например, указывается тип графика, а не значение...
...
Рейтинг: 0 / 0
07.02.2007, 12:54
    #34312266
Ex_Soft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Построение графиков в Excel
Drako
где можно посмотреть, какие графики какое имеет значение и т.п.?

Я юзаю X:\Program Files\Microsoft Office\Office\VBAXL8.HLP && $(BCB)\Include\Vcl\excel_2k.h
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Построение графиков в Excel / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]