Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2011, 22:11   #1
nikozavr
Форумчанин
 
Регистрация: 11.02.2011
Сообщений: 140
По умолчанию DataGridView и Exel

Есть код:
Код:
using System;
using System.Windows.Forms;
using System.Collections.Generic;
 
namespace WindowsApplicationTest
{
    public partial class Form1 : Form
    {
        // Здесь будут храниться наши данные.
        private List<MyData> list;
 
        public Form1()
        {
            InitializeComponent();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            list = new List<MyData>();
 
            // Создаем связь между DataGridView, BindingSource и нашим списком.
            dataGridView1.AutoGenerateColumns = true;
            dataGridView1.DataSource = bindingSource1;
            bindingSource1.DataSource = list;
 
            // Следующий код можно реализовать и через дизайнер формы.
            // Но я решил, что так точно никаких ошибок не будет.
            // В дальнеешем можете удалить следующий код, добавив его через дизайнер.
            button1.Click += new EventHandler(button1_Click);
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            // Код С++ с main находиться здесь + еще отображение в DataGridView.
 
            double h, n, x, y;
            
            // Считываем данные с текстовых полей.
            if (!double.TryParse(textBox1.Text, out h)) h = 0;
            if (!double.TryParse(textBox2.Text, out n)) n = 0;
            if (!double.TryParse(textBox3.Text, out x)) x = 0;
            if (!double.TryParse(textBox4.Text, out y)) y = 0;
 
            double fy, k, k0, k1, k2, k3;
            for (int i = 0; i < n; i++)
            {
                fy = MyFunc(x, y);
                k0 = h * fy;
                k1 = h * MyFunc(x + h / 2.0, y + k0 / 2.0);
                k2 = h * MyFunc(x + h / 2.0, y + k1 / 2.0);
                k3 = h * MyFunc(x + h, y + k2);
                k = (k0 + 2.0 * k1 + 2.0 * k2 + k3) / 6.0;
                y += k;
 
                // Заносим данные в наш список.
                list.Add(new MyData(x, y));
 
                x += h;
            }
 
            // Отображаем результат (наш список) в DataGridView
            bindingSource1.ResetBindings(true);
        }
 
        // Ваша функция.
        private double MyFunc(double x, double y)
        {
            return 6 * x * x + 5 * x * y + y * y + 4 * x + 2 * y - 3;
        }
    }
 
    // Класс, в котором хранятся данные.
    class MyData
    {
        public double X { get; set; }
        public double Y { get; set; }
 
        public MyData(double x, double y)
        {
            this.X = x;
            this.Y = y;
        }
    }
}
Вот так я могу отправить данные в Екзель в ручную:

ObjWorkSheet.Cells[2, 1] = list[1].X;
ObjWorkSheet.Cells[2, 2] = list[1].Y;


Вот так пытаюсь в цикле:

Код:
for (int i = 0; i < list.Сount; i++)
{
    ObjWorkSheet.Cells[i + 1, 1] = list[i].X;
    ObjWorkSheet.Cells[i + 1, 2] = list[i].Y;
}
Не работает. Почему?
Хочу шарить как Daramant!!!
nikozavr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
dataGridView Alex_sim Общие вопросы .NET 4 12.06.2010 20:50
C#, datagridview Studento4ka Помощь студентам 0 21.11.2009 13:34
c# + datagridview MAcK Общие вопросы .NET 2 06.06.2008 15:57