Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 43

Копирует не значение ячейки, а то, чем эта ячейка является

21.05.2016, 17:59. Показов 1500. Ответов 4

Студворк — интернет-сервис помощи студентам
Овзникла необходимость использовать эксель. В ячейке таблицы стоит формула, которая возвращает 0 или 1. При копировании этой ячейки в стринговую переменную, копируется название объекта. Как можно скопировать именно значение из ячейки?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
Microsoft.Office.Interop.Excel.Application ExcelOne = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook WorkBookOne = ExcelOne.Workbooks.Open(@"D:\\Акции\1.csv", 0,false, 5, ",", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
            Microsoft.Office.Interop.Excel.Application ExcelSecond = new Microsoft.Office.Interop.Excel.Application();
            Microsoft.Office.Interop.Excel.Workbook WorkBookSecond = ExcelSecond.Workbooks.Open(@"D:\\Акции\1.csv", 0, false, 5, ",", "", false, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "", true, false, 0, true, false, false);
            Microsoft.Office.Interop.Excel.Worksheet WorkSheetOne;
            WorkSheetOne = (Microsoft.Office.Interop.Excel.Worksheet)WorkBookOne.Sheets[1];
            Microsoft.Office.Interop.Excel.Worksheet WorkSheetSecond;
            WorkSheetSecond = (Microsoft.Office.Interop.Excel.Worksheet)WorkBookSecond.Sheets[1];
            string signal;//M2:M2;
            Microsoft.Office.Interop.Excel.Range range = WorkSheetSecond.get_Range("M2","M2");//
            signal = Convert.ToString(range);
            //int sig = Convert.ToInt16(range);
            //if (sig == 0) { SignalBox.Clear();SignalBox.Text = "Продавай"; }
            //if (sig == 1) { SignalBox.Clear();SignalBox.Text = "Покупай"; }
            SignalBox.Clear();
            SignalBox.Text = signal;
            ExcelSecond.Quit();
            ExcelOne.Quit();
Миниатюры
Копирует не значение ячейки, а то, чем эта ячейка является  
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.05.2016, 17:59
Ответы с готовыми решениями:

Ячейка должна принимать определенное значение в зависимости от значения другой ячейки и даты
Здравствуйте! Есть три таблицы "Спортсмены","Соревнования", "Дополнительно". Задача такая: Мне нужно чтобы при вводе данных в подчиненную...

Эта ячейка была изменена
Эта ячейка была изменена Это изменение не было зафиксировано в базе данных Исходные данные NULL В чем проблема?????

Если ячейка Н больше ячейки Е, то умножить на Е
Добрый день Ребята как сделать если ячейка Н больше ячейки Е то умножить на Е, а если Е больше чем Н умножить на Е

4
 Аватар для Romalei
109 / 50 / 55
Регистрация: 17.09.2013
Сообщений: 298
21.05.2016, 18:57
Попробуйте
C#
1
SignalBox.Text = WorkSheetSecond.Cells[индекс_строки, индекс_столбца].ToString();
Правда не уверен, что сработает
0
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 43
22.05.2016, 12:09  [ТС]
К сожалению не помогло. Есть ли разница в том, что стоит в ячейке(формула или просто число)?
0
999 / 358 / 135
Регистрация: 27.10.2006
Сообщений: 764
22.05.2016, 21:57
Лучший ответ Сообщение было отмечено Zaqwsxcde263 как решение

Решение

Вот пример получения значения ячейки Excel в Textbox (в ячейке записана формула, получаем её значение)

Нужно подключить ссылку на Microsoft Excel 15.0 Object Library в меню Project - Add Reference... - COM (у вас может быть другая версия Excel - 14.0, 12.0 и т.д.)

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
using System;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application ExcelOne = new Microsoft.Office.Interop.Excel.Application();
            Excel.Workbook WorkBookOne = ExcelOne.Workbooks.Open(@"G:\C#\ExcelFile.xlsx");
            Excel.Worksheet WorkSheetOne;
            WorkSheetOne = (Excel.Worksheet)WorkBookOne.Sheets[1];
            Excel.Range range = WorkSheetOne.get_Range("M2");
            textBox1.Text = range.Value.ToString();
            WorkBookOne.Close(false); //закрыть книгу и не сохранять изменения (если true - сохранить изменения)
            ExcelOne.Quit();
        }
    }
}
Добавлено через 7 минут
P.S. Можно чуть сократить код

C#
1
2
3
4
5
6
7
8
9
        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application();
            Excel.Workbook xlWB = xlApp.Workbooks.Open(@"G:\C#\ExcelFile.xlsx");
            Excel.Worksheet xlSht = (Excel.Worksheet)xlWB.Sheets[1];
            textBox1.Text = xlSht.get_Range("M2").Value.ToString();
            xlWB.Close(false); //закрыть книгу и не сохранять изменения (если true - сохранить изменения)
            xlApp.Quit();
        }
1
0 / 0 / 0
Регистрация: 17.05.2016
Сообщений: 43
23.05.2016, 02:08  [ТС]
Спасибо! Вы решили мою проблему!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.05.2016, 02:08
Помогаю со студенческими работами здесь

Получить значение ячейки, зная, что у другой ячейки в этой строке - максимальное значение
Да, может заголовок не очень, но я не знаю как лучше вкратце описать проблему. В общем, у меня есть результаты тестирования, которые...

Выделение ячейки цветом если следующая ячейка не пустая
Добрый день. Помогите разобраться. У меня на столбец "J" созданы правила УФ, при превышении определенной даты, ячейки в этом столбце...

При закраске ячейки, автоматически закрашивалась связная ячейка в Excel
лист2 ячейка А1, зависит от лист1 ячейки А1 лист2 ячейка G2, зависит от лист1 ячейки А2 лист2 ячейка B1, зависит от лист1 ячейки H3 ...

С жесткого копирует, но на не копирует ил копирует частично
Проблема такая: С жесткого информация перебрасывается только в путь... Зато при копировании на жесткий начинается копирование и...

Проверка является ли ячейка в Excel пустой
Как проверить ячейка пустая или нет? функция VarType возвращает всегда разные значения на пустых ячейках


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Программный отбор значения справочника
Maks 21.03.2026
Процедура ВодителиНачалоВыбора(Элемент, ДанныеВыбора, ВыборДобавлением, СтандартнаяОбработка) / / Отключаем стандартную обработку (стандартное открытие формы выбора без фильтров) . . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru