slm arkadaslar
excelde chart da xvalues :=VarArrayOf([a,b,...,c]);
... değişken dizi sayısı=50
bir değişkenin içinde en az 15 karekter var
10 diziyi alıyor ama 50 tanede problme yaratıyor birde
range yontemini denedim ama sayfdan değişik cells leri alıcam
yani Sayfa1!$A$3:$A$5 + Sayfa1!$A$7:$A$9 GİBİ yardımcı olurmusunuz!
kodları gonderiyorum ve kapalı olan yerdeki degerleri value sonuna eklerseniz hata vericektir:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Excel97,comobj, OleServer;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure HandleData;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
excel,Sheet: Variant;
implementation
{$R *.DFM}
procedure TForm1.HandleData;
var
i,k: Integer;
begin
k:=1999;
for i := 1 to 20 do
begin
Sheet.Cells[i, 1] := i;
Sheet.Cells[i, 2] :='01.01.2002 resepsiyon';
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var asheet1,range,Shts,arange,achart,series:variant;
begin
EXCEL := CREATEOLEOBJECT('EXCEL.APPLICATION');
EXCEL.Workbooks.Add[XLWBatWorksheet];
SHEET:=EXCEL.Workbooks[1].Worksheets[1];
EXCEL.visible:=true;
HandleData;
//geni,şlik //yukseklik
achart:=SHEET.chartobjects.add(100,100,850,350);
achart.chart.charttype:=51;
Shts := EXCEL.Sheets; //Sayfa1!$A$3:$J$54
// ARange := Shts.Item['Sayfa1'].Range['B1:B10;Sayfa1!A1'];
series:=achart.chart.seriescollection; // range:='sheet1!r2c3:r3c9';
Range:='Sayfa1!a1:a10';
series.add(range);
//series.NewSeries;
try
series.Item[1].Values:=VarArrayOf([0,2,3,5,7,0,0,0]);
{
1,1,1,1,1,1,1,
1,1,1,1,1,1,1,1,
1,1,1,1,1,1,1]);
}
series.Item[1].xValues:=VarArrayOf(['PINO BUFE','PINO HIZMET','TURKUAZ BUFE','TURKUAZ HIZMET','VERANDA BUFE','VERANDA HIZMET','EGE YEMEK','EGE HIZMET']);
{
'BONZAİ YEMEK','BONZAİ HIZMET','MANDARIN YEMEK','MANDARIN HIZMET','FANTASY YEMEK','FANTASY HIZMET','MERMAİD YEMEK',
'MERMAİD HIZMET','OILVIA YEMEK','OILVIA HIZMET','KEBAP YEMEK','KEBAP HIZMET','CACTUS YEMEK','CACTUS HIZMET','THAI NOODLE YEMEK',
'THAI NOODLE HIZMET','ALARA SNACK YEMEK','ALARA SNACK HIZMET','LA PATİSSERİE YEMEK','LA PATİSSERİE HIZMET','SAWADEE GORUNUM','SAWADEE HIZMET']);
}
except
end;
series.Item[1].HasDataLabels := true;
series.Item[1].DataLabels.Font.Bold:=false;
end;
end.
excelde chart
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Selam..
- Bu akşam cevap gönderilmemiş başlıkları inceliyorum...
- Denemelerimi aşağıdaki formatta gerçekleştirdim ve sizinle aynı sonuca vardım. Maksimum karakter sayısı sınırına takılmışsınız. İsimleri kısalttığınız taktirde sorununuz kalmayacaktır.
- Yukardaki örnekte kabul edilen en fazla karakter sayısını bulmayı hedefledim. Bu hali ile Excel'e kabul edilirken, son isme bir harf dahi eklense hata dönüyor.
- Deneme için şu sıralı deneyi yapıp teyid etmek istedim.. Aşağıda göreceğin her iki sıralı da sınırda. Yani herhangi birine bir harf eklersen kabul edilmez ama bu halleriyle kabul ediliyorlar...
- Şimdi önerime geleyim... Bu sınırları zorlamanın en kolay yolu, Alias metodu olacaktır. Sen ismi uzun uzun başka bir Sheet'deki hücrelere yazıdır. Bu başka Sheet'in adını da Sayfa1 gibi uzun değil de S1 gibi kısa tut, Başlık olarak da şöyle tanımla...
S2 sayfasındaki A1 hücresindeki veri Chart'a yansıyacak ama 50 karakter bile olsa harcanan alan 9 karakter olacaktır...
- Bu sana biraz daha yer kazandıracaktır. En azından mevcut istediğin miktardaki verinin chart'a yansıtılmasına faydası olacaktır.
- Çalışmalarında başarılar...
- Bu akşam cevap gönderilmemiş başlıkları inceliyorum...

- Denemelerimi aşağıdaki formatta gerçekleştirdim ve sizinle aynı sonuca vardım. Maksimum karakter sayısı sınırına takılmışsınız. İsimleri kısalttığınız taktirde sorununuz kalmayacaktır.
Kod: Tümünü seç
series.Item[1].xValues:=VarArrayOf([
'BONZAİ YEMEK', 'BONZAİ HIZMET',
'MANDARIN YEMEK', 'MANDARIN HIZMET',
'FANTASY YEMEK', 'FANTASY HIZMET',
'MERMAİD YEMEK', 'MERMAİD HIZMET',
'OILVIA YEMEK', 'OILVIA HIZMET',
'KEBAP YEMEK', 'KEBAP HIZMET',
'CACTUS YEMEK', 'CACTUS HIZMET',
'THAI NOODLE YEMEK', 'ABCDEFG'
// 'THAI NOODLE YEMEK', 'THAI NOODLE HIZMET',
// 'ALARA SNACK YEMEK', 'ALARA SNACK HIZMET',
// 'LA PATİSSERİE YEMEK','LA PATİSSERİE HIZMET',
// 'SAWADEE GORUNUM', 'SAWADEE HIZMET'
]);
- Deneme için şu sıralı deneyi yapıp teyid etmek istedim.. Aşağıda göreceğin her iki sıralı da sınırda. Yani herhangi birine bir harf eklersen kabul edilmez ama bu halleriyle kabul ediliyorlar...
Kod: Tümünü seç
series.Item[1].xValues:=VarArrayOf([
'A123456789',
'B123456789',
'C123456789',
'D123456789',
'E123456789',
'F123456789',
'G123456789',
'H123456789',
'I123456789',
'J123456789',
'K123456789',
'L123456789',
'M123456789',
'N123456789',
'O123456789',
'P123456789',
'Q123456789',
'R123456789',
'S123456789',
'T12'
]);
Kod: Tümünü seç
series.Item[1].xValues:=VarArrayOf([
'A1234',
'B1234',
'C1234',
'D1234',
'E1234',
'F1234',
'G1234',
'H1234',
'I1234',
'J1234',
'K1234',
'L1234',
'M1234',
'N1234',
'O1234',
'P1234',
'Q1234',
'R1234',
'S1234',
'a1234',
'b1234',
'c1234',
'd1234',
'e1234',
'f1234',
'g1234',
'h1234',
'ı1234',
'j1234',
'k1234',
'l1234',
'm1'
]);
Kod: Tümünü seç
'S2'!$A$1
- Bu sana biraz daha yer kazandıracaktır. En azından mevcut istediğin miktardaki verinin chart'a yansıtılmasına faydası olacaktır.
- Çalışmalarında başarılar...