2011-04-06 17 views
5

मैं एक्सेल का उपयोग कर रहा ग # से चार्ट आकर्षित करने के लिए, लेकिन मैं चार्ट की जरूरत है एक दूसरे को नहीं दो श्रृंखला से संबंधित
कर सकते हैं किसी भी (जब मैं एक सीमा है कि डेटा के दो स्तंभ हैं चुनें) एक श्रृंखला होने के लिए सामने की सहायता:एक्सेल चार्ट + सी #

 xla.Visible = true; 
     Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet); 
     Worksheet ws = (Worksheet)xla.ActiveSheet; 

     // Now create the chart. 
     ChartObjects chartObjs = (ChartObjects)ws.ChartObjects(Type.Missing); 
     ChartObject chartObj = chartObjs.Add(100, 20, 300, 300); 
     Chart xlChart = chartObj.Chart; 
     Range rg = ws.get_Range("B2", "C17"); 
     xlChart.SetSourceData(chartRange, XlRowCol.xlColumns); 

धन्यवाद

+0

मैं आप जो करने की कोशिश कर रहा हूं उस पर उलझन में हूं। –

+0

जब आपने एक्सेल में डेटा के कॉलम को टॉव किया है और उन्हें चुनें और चार्ट डालें, तो यह चार्ट में लाइनों की ईथर टॉव श्रृंखला उत्पन्न कर सकता है या एक श्रृंखला (यानी लाइन) उत्पन्न कर सकता है जो दोनों कॉलम के सापेक्ष है जैसे कि पहला कॉलम एक्स- धुरी और दूसरा वाई-अक्ष है, मुझे कोड में यह करने की ज़रूरत है कि टॉव श्रृंखला नहीं है क्योंकि मैंने – Abd

उत्तर

11

मैं थोड़ा ऊपर कोड साफ है और इसलिए यह अपने आप ही चलाना चाहिए यादृच्छिक डेटा की पीढ़ी गयी।

Random random = new Random(); 
Microsoft.Office.Interop.Excel.Application xla = new Microsoft.Office.Interop.Excel.Application(); 
xla.Visible = true; 
Workbook wb = xla.Workbooks.Add(XlSheetType.xlWorksheet); 

Worksheet ws = (Worksheet)xla.ActiveSheet; 

// Now create the chart. 
ChartObjects chartObjs = (ChartObjects)ws.ChartObjects(); 
ChartObject chartObj = chartObjs.Add(150, 20, 300, 300); 
Chart xlChart = chartObj.Chart; 

// generate some random data 
for (int row = 0; row < 16; row++) 
{ 
    ws.Cells[row + 2, 2] = row + 1; 
    ws.Cells[row + 2, 3] = random.Next(100); 
} 

Range xValues = ws.Range["B2", "B17"]; 
Range values = ws.Range["C2", "C17"]; 

SeriesCollection seriesCollection = xlChart.SeriesCollection(); 

Series series1 = seriesCollection.NewSeries(); 
series1.XValues = xValues; 
series1.Values = values; 
+0

का उल्लेख किया है धन्यवाद यह काम करता है :) – Abd

+2

+1! अपने कोड का प्रयास किया लेकिन इस लाइन 'सीरीज कोलेक्शन श्रृंखला चयन = xlChart.SeriesCollection(); ' – GETah

+0

@GETah पर एक COM अपवाद मिला - इसका मतलब यह हो सकता है कि आपने चार्ट इंस्टॉल नहीं किया है या चार्ट ओबीजे सही तरीके से नहीं बनाया है। यदि आप इसके साथ मदद चाहते हैं तो आपको अधिक जानकारी प्रदान करने की आवश्यकता होगी (क्या अपवाद, आप क्या कर रहे हैं) और एक अलग प्रश्न पूछें। –

संबंधित मुद्दे