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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2016, 12:28   #1
noob noob
Пользователь
 
Регистрация: 16.04.2016
Сообщений: 19
По умолчанию Вычисление суммы

Не знаете, как вычислить сумму чисел с таблицы excel? Нужно сперва в датагрид загрузить таблицу excel (я это сделал), потом используя эти данные с таблицы, программа должна вычислить среднюю, сумму, и.т.д. Как это сделать - я не понял. В общем , как ввести в Visual studio (C#) формулы?? Не простые формулы, а сложные - типа со знаком суммы, с корнями, с логарифмами?

Последний раз редактировалось Alex11223; 18.04.2016 в 12:30.
noob noob вне форума Ответить с цитированием
Старый 18.04.2016, 12:30   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Как из экселя данные загружаете? Код покажите.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2016, 15:27   #3
noob noob
Пользователь
 
Регистрация: 16.04.2016
Сообщений: 19
По умолчанию

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Microsoft.Office.Interop.Excel;
using Excel = Microsoft.Office.Interop.Excel;

namespace proekt1
{
    public partial class Form3 : Form
    {

        private Microsoft.Office.Interop.Excel.Application ObjExcel;
        private Microsoft.Office.Interop.Excel.Workbook ObjWorkBook;
        private Microsoft.Office.Interop.Excel.Worksheet ObjWorkSheet;

        public Form3()
        {
            InitializeComponent();
        }

        private void Form3_Load(object sender, EventArgs e)
        {

        }

        private void загрузитьToolStripMenuItem_Click(object sender, EventArgs e)
        {
            openFileDialog1.Filter = "Файл Excel|*.XLSX;*.XLS | Все файлы(*.*)|*.*";
            openFileDialog1.ShowDialog();
            string filename = openFileDialog1.FileName;

            try
            {
                ObjExcel = new Microsoft.Office.Interop.Excel.Application();
               
                ObjWorkBook = ObjExcel.Workbooks.Open(openFileDialog1.FileName);
                
                ObjWorkSheet = ObjExcel.ActiveSheet as Microsoft.Office.Interop.Excel.Worksheet;
                Microsoft.Office.Interop.Excel.Range rg = null;

                Int32 row = 2;
                dataGridView1.Rows.Clear();
                List<String> arr = new List<string>();
                while (ObjWorkSheet.get_Range("A" + row, "A" + row).Value != null)
                {
                   
                    rg = ObjWorkSheet.get_Range("A" + row, "J" + row);
                    foreach (Microsoft.Office.Interop.Excel.Range item in rg)
                    {
                        try
                        {
                            arr.Add(item.Value.ToString().Trim());
                        }
                        catch
                        {
                            arr.Add("");
                        }
                    }
                    dataGridView1.Rows.Add(arr[0], arr[1], arr[2], arr[3], arr[4], arr[5], arr[6], arr[7], arr[8], arr[9]);
                    arr.Clear();
                    row++;
                }

                MessageBox.Show("Файл успешно считан!", "Считывания excel файла", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ошибка: " + ex.Message, "Ошибка при считывании excel файла", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            finally
            {
                ObjWorkBook.Close(true, "", null);
               
                ObjExcel.Quit();
                ObjWorkBook = null;
                ObjWorkSheet = null;
                ObjExcel = null;
                GC.Collect();
            }
        } 

        private void выйтиToolStripMenuItem_Click(object sender, EventArgs e)
        {
            this.Close();
            
        }
    }
}
Вот, весь код


______________________
Используйте тег [CODE] (кнопка с решеткой # в форме сообщения) при вставке кода на форум.

Последний раз редактировалось Alex11223; 18.04.2016 в 15:29.
noob noob вне форума Ответить с цитированием
Старый 18.04.2016, 15:36   #4
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Задача-то исходная какая? Формулы есть в том документе Экселя и нужен просто их результат или что?

Если просто посчитать сумму (или любое другое вышеперечисленное действие) в программе, то непонятно в чем проблема. Переводите данные в числа (double.Parse, int.Parse, ..., или может быть просто item.Value вместо ToString скастовать к нужному типу) вместо строк и считайте.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2016, 15:50   #5
noob noob
Пользователь
 
Регистрация: 16.04.2016
Сообщений: 19
По умолчанию

Мне нужно сделать приложение, которое делает следующее: Я открываю его, загружаю в него xlsx файл (в этом файле, например, есть таблица значений X и Y), эта таблица отображается в datagridview, потом я выделяю или отмечаю все значения X или Y, и нажимаю кнопку, например, "вычислить сумму", "найти среднее" итд, после этого появляется окно типа "результат равен ...". Ну, это выглядит примерно так. Это реально сделать или нет?))
noob noob вне форума Ответить с цитированием
Старый 18.04.2016, 15:52   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

реально, у вас же все данные есть, возьмите обратно их из грида.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.04.2016, 15:59   #7
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Ну читайте выделенные значения (в dataGridView наверняка есть какие-то методы типа SelectedCells), конвертируйте из строк в числа, считайте что надо.

Цитата:
xlsx файл
если xls не надо, а только xlsx, то возьмите библиотеку типа ClosedXML и не придется открывать целый Эксель для чтения данных из документа.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 18.04.2016, 16:13   #8
noob noob
Пользователь
 
Регистрация: 16.04.2016
Сообщений: 19
По умолчанию

ааа, а как занести формулы в visual??? формулы со знаком суммы, логарифма итд???
noob noob вне форума Ответить с цитированием
Старый 18.04.2016, 16:19   #9
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

руками перевести в код.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 18.04.2016, 16:24   #10
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Цитата:
формулы со знаком суммы
Код:
int val1 = 2;
int val2 = int.Parse("3");
int result = val1 + val2;

Цитата:
логарифма
https://msdn.microsoft.com/en-us/lib...vs.110%29.aspx
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление суммы ряда Flora123 C# (си шарп) 6 19.12.2015 18:51
Вычисление суммы Илья РООгулин Microsoft Office Excel 5 30.05.2014 00:14
Вычисление суммы ряда aperdt Паскаль, Turbo Pascal, PascalABC.NET 2 03.10.2012 19:14
Вычисление суммы! brazilec2 Помощь студентам 6 09.06.2010 20:14
Вычисление суммы mixanja Общие вопросы Delphi 1 13.04.2010 17:32