PDA

View Full Version : سوال: ارتباط # C و Excel



atifeh
سه شنبه 24 مرداد 1391, 16:17 عصر
سلام

من میخوام با زدن یک دکمه در فرمم یک نمودار در محیط excel بر اساس اطلاعات گریدم رسم بشه
تونستم اطلاعات گرید را به Excel انتقال بدم اما اینکه نموار رسم بشه و خود Excel بسته شه را نمی دونم
در واقع می خوام با زدن دکمه فقط نمودار نمایش داده بشه و بعدم بتونم ازش پرینت بگیرم:اشتباه:

atifeh
چهارشنبه 25 مرداد 1391, 01:01 صبح
یعنی از این 38 تایی که دیدن هیچ کس بلد نیست
:گریه:

مدیر تالار #C کمککککک

atifeh
چهارشنبه 25 مرداد 1391, 01:03 صبح
:افسرده:
منتظرم هااااااااااااااااااااا
نا امیدن نکنید

Y_Safaiee
چهارشنبه 25 مرداد 1391, 03:40 صبح
با سلام خدمت شما دوست عزیز

به اینجا (http://csharp.net-informations.com/excel/csharp-excel-chart.htm), اینجا (http://www.dotnetperls.com/excel), اینجا (http://www.codeproject.com/Articles/18196/Excel-Charts-in-C-Applications), اینجا (http://stackoverflow.com/questions/2108926/create-a-chart-in-excel-using-c-sharp)مراجعه کنید,یه سرچم تو گوگل بزنید دنیایی سایت میاد

اگه دوس دارین پویا باشه یعنی به محض دادن عدد تو فرم سی شارپتون چارتشو ببینین من EDraw Office Viewer رو بهتون پیشنهاد میکنم.

موفق باشین
بایت بایت

atifeh
پنج شنبه 26 مرداد 1391, 22:48 عصر
با سلام خدمت شما دوست عزیز

به اینجا (http://csharp.net-informations.com/excel/csharp-excel-chart.htm), اینجا (http://www.dotnetperls.com/excel), اینجا (http://www.codeproject.com/Articles/18196/Excel-Charts-in-C-Applications), اینجا (http://stackoverflow.com/questions/2108926/create-a-chart-in-excel-using-c-sharp)مراجعه کنید,یه سرچم تو گوگل بزنید دنیایی سایت میاد

اگه دوس دارین پویا باشه یعنی به محض دادن عدد تو فرم سی شارپتون چارتشو ببینین من EDraw Office Viewer رو بهتون پیشنهاد میکنم.

موفق باشین
بایت بایت


توی همه برنامه های این سایت ها از چیزی استفاده شده که برنامه error میگیره
اونم chartobject که میگه کتابخونش نیست
من خیلی گشتم اما چیزی پیدا نکردم
interop.excel هم اضافه کردم اما درست نشد

atifeh
جمعه 27 مرداد 1391, 03:17 صبح
ای بابا
کسی نمیدونه این chartobject تو کدوم کتابخونس؟

Y_Safaiee
جمعه 27 مرداد 1391, 07:35 صبح
با سلام خدمت شما

براتون یه سمپل کد نوشتم فقط اگه تو رفرنس ها excel اضافه نشده بود Microsoft.Office.Interop.Excel رو اضافه کنید.

این کدم کد کاملشه :


using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using Excel = Microsoft.Office.Interop.Excel;

namespace DrawChart
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void Form1_Load(object sender, EventArgs e)
{
}

private void releaseObject(object obj)

{

try

{

System.Runtime.InteropServices.Marshal.ReleaseComO bject(obj);

obj = null;

}

catch (Exception ex)

{

obj = null;

MessageBox.Show("Exception Occured while releasing object " + ex.ToString());

}

finally

{

GC.Collect();

}

}

private void button1_Click(object sender, EventArgs e)
{

Excel.Application xlApp;

Excel.Workbook xlWorkBook;

Excel.Worksheet xlWorkSheet;

object misValue = System.Reflection.Missing.Value;



xlApp = new Excel.ApplicationClass();

xlWorkBook = xlApp.Workbooks.Add(misValue);

xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1) ;



//add data

xlWorkSheet.Cells[1, 1] = "";

xlWorkSheet.Cells[1, 2] = "Student1";

xlWorkSheet.Cells[1, 3] = "Student2";

xlWorkSheet.Cells[1, 4] = "Student3";



xlWorkSheet.Cells[2, 1] = "Term1";

xlWorkSheet.Cells[2, 2] = "80";

xlWorkSheet.Cells[2, 3] = "65";

xlWorkSheet.Cells[2, 4] = "45";



xlWorkSheet.Cells[3, 1] = "Term2";

xlWorkSheet.Cells[3, 2] = "78";

xlWorkSheet.Cells[3, 3] = "72";

xlWorkSheet.Cells[3, 4] = "60";



xlWorkSheet.Cells[4, 1] = "Term3";

xlWorkSheet.Cells[4, 2] = "82";

xlWorkSheet.Cells[4, 3] = "80";

xlWorkSheet.Cells[4, 4] = "65";



xlWorkSheet.Cells[5, 1] = "Term4";

xlWorkSheet.Cells[5, 2] = "75";

xlWorkSheet.Cells[5, 3] = "82";

xlWorkSheet.Cells[5, 4] = "68";



Excel.Range chartRange;



Excel.ChartObjects xlCharts = (Excel.ChartObjects)xlWorkSheet.ChartObjects(Type. Missing);

Excel.ChartObject myChart = (Excel.ChartObject)xlCharts.Add(10, 80, 300, 250);

Excel.Chart chartPage = myChart.Chart;



chartRange = xlWorkSheet.get_Range("A1", "d5");

chartPage.SetSourceData(chartRange, misValue);

chartPage.ChartType = Excel.XlChartType.xlColumnClustered;



xlWorkBook.SaveAs("d:\\test.xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

xlWorkBook.Close(true, misValue, misValue);

xlApp.Quit();



releaseObject(xlWorkSheet);

releaseObject(xlWorkBook);

releaseObject(xlApp);



MessageBox.Show("Excel file created , you can find the file d:\\test.xls");
}



}

}


موفق باشین
بایت بایت

atifeh
جمعه 27 مرداد 1391, 15:50 عصر
خیلی ممنون:لبخندساده: