powered by simpleCommunicator - 2.0.38     © 2025 Programmizd 02
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / Построение графиков в Excel
8 сообщений из 8, страница 1 из 1
Построение графиков в Excel
    #34302953
Drako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте. У меня возникла такая проблема. Может кто-нибудь знает, поможет решить.
Мне надо построить диаграммы в 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
Построение графиков в Excel
    #34305374
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тынць
_________________
"Helo, word!" - 17 errors 56 warnings
...
Рейтинг: 0 / 0
Построение графиков в Excel
    #34306408
Drako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, однако это на Delphi. На Delphi писать проще, чем на том же JS и VBS.
Меня интересует, как сделать именно на JavaScript.
Почему при выделении области - он строит второй график (линию) как сумму первого и второго?
...
Рейтинг: 0 / 0
Построение графиков в Excel
    #34306577
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Построение графиков в Excel
    #34307296
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: 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
Построение графиков в Excel
    #34312081
Drako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, конечно, только я спрашивал не об этом. Между прочим тоже можно сделать проще.
...
Рейтинг: 0 / 0
Построение графиков в Excel
    #34312112
Drako
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То, что я спрашивал, почему на одном графике строилась вторая кривая, как сумма первой и второй - это оказалось не тот тип графика был. Я ставил 66, а надо было 4, например.
Кто-нибудь знает, где можно посмотреть, какие графики какое имеет значение и т.п.? А то при записи макроса, например, указывается тип графика, а не значение...
...
Рейтинг: 0 / 0
Построение графиков в Excel
    #34312266
Фотография Ex_Soft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Drako
где можно посмотреть, какие графики какое имеет значение и т.п.?

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


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