Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228

Как правильно обратиться в разные таблицы к ячейкам в Excel?

18.06.2016, 07:08. Показов 1400. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, как правильно обратится в разные таблицы к ячейкам в Excel.
Есть Excel с 3 таблицами, надо что бы
Пример:
textBox3 обращался ко 2 таблице А1, textBox2 к 3 таблице A1. Просто в инете ни где не нашел, как работать так с несколькими таблицами. Чтоб был указан путь к Excel в коде и при нажатии у нас обрашалась. С 1 таблицей нашел куча и знал как.
Кто знает подскажи те пожалуйста.

Добавлено через 18 часов 42 минуты
Кто нибудь делал такое ?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.06.2016, 07:08
Ответы с готовыми решениями:

Как правильно обратиться к ячейкам активного листа?
Здравствуйте! Написал такой код: Sub Check() Dim iWS As Worksheet For Each iWS In ThisWorkbook.Worksheets ...

Вывод таблицы в Excel. Как задать стили ячейкам и столбцам?
Делаю вывод таблц в Excel Может кто подскажет, как поменять формат ячейки и размер

Как экспортировать таблицы из access в excel на разные листы?
Привет, подскажите пожалуйста, как заставить процедуру экспортировать таблицы из access в excel на разные листы? Всем спасибо!

10
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
18.06.2016, 08:40
C#
1
2
3
4
5
6
using Excel = Microsoft.Office.Interop.Excel;
//...
Excel.Application app = new Excel.Application();
Excel.Workbook xls = app.Workbooks.Open(PathToExcelTemplateFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Excel.Worksheet worksheetxls = (Excel.Worksheet)xls.Sheets[1];
((Microsoft.Office.Interop.Excel._Worksheet)worksheetxls).Activate();
В данном примере открывается первый лист книги. Неужели так сложно догадаться, как открыть 2-й лист или 3-й?
0
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228
18.06.2016, 08:57  [ТС]
Мне не открывать лист именно, мне надо что бы? у меня есть форма на который пусть будет 10 textBox и 3 button ( как пример ). Ввел во все 10 textBox информацию и по нажатаию butten 1 у меня 1 2 3 textBox записывается в Лист 1 Ячека A1 B1 C1, на второй баттен все тоже самое токо в Лист два. Тобишь файл экселя лежит в папке к нему в коде путь и на каждый баттен такое сделать. Мне код хотя бы на 1 баттен тк там меняться ничего не будет кроме листа и ячеек.
0
999 / 358 / 135
Регистрация: 27.10.2006
Сообщений: 764
18.06.2016, 14:54
Проблема всех участников форума с вопросами по Excel в том, что задают, как им кажется, понятные вопросы, но никогда не прикладывают свой Excel файл, а всем остальным участникам приходится гадать и начинаются куча ненужных вопросов.
Начинаем гадание: что вы имеете ввиду под словам "таблица"? В Excel есть листы "Лист1", "Лист2" и тд. , на любой листе может быть миллион таблиц. Таблица - это любые ячейки на листе.

p.s. А заменить секретную информацию например на число "1" в ячейке и выложить файл на форум никто никогда не может ((
Все пишут - этот файл секретный и показать я его не могу и сделать новый файл с яблоками, мандаринами и земляникой и цифрами 123 никто не догадывается. Обидно...

using Excel = Microsoft.Office.Interop.Excel;

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Excel.Worksheet xlSht1;
Excel.Worksheet xlSht2;
Excel.Worksheet xlSht3;
 
Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл           
 
xlSht1 = xlWB.Worksheets["Лист1"]; 
xlSht2 = xlWB.Worksheets["Лист2"]; 
xlSht3 = xlWB.Worksheets["Лист3"]; 
 
textBox1.text = xlSht1.get_Range("A1");
textBox2.text = xlSht2.get_Range("A1");
textBox3.text = xlSht3.get_Range("A1");
или

C#
1
2
3
4
5
6
Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
xlWB = xlApp.Workbooks.Open(xlFileName); //открываем наш файл  
 
textBox1.text = xlWB.Worksheets["Лист1"].get_Range("A1");
textBox2.text = xlWB.Worksheets["Лист2"].get_Range("A1");
textBox3.text = xlWB.Worksheets["Лист3"].get_Range("A1");
0
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228
18.06.2016, 15:31  [ТС]
Спасибо, но при заполненеи у 1 textBoxa ошибка, а так вы поняли все правильно.

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
27
using Microsoft.Office.Interop.Excel;
 
namespace WindowsFormsApplication3
{
    public partial class Form1 : Form
    {
        Microsoft.Office.Interop.Excel.Worksheet xlSht1;
        Microsoft.Office.Interop.Excel.Worksheet xlSht2;
        Microsoft.Office.Interop.Excel.Worksheet xlSht3;
        Microsoft.Office.Interop.Excel.Workbook xlWB;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           
 
            Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.Application(); //создаём приложение Excel
            xlWB = xlApp.Workbooks.Open("D:\\test.xlsx"); //открываем наш файл           
 
           
            textBox1.Text = xlWB.Worksheets["Лист1"].get_Range("A1");
            textBox2.Text = xlWB.Worksheets["Лист2"].get_Range("A1");
            textBox3.Text = xlWB.Worksheets["Лист3"].get_Range("A1");
        }
Вот как у меня все сделанно но 1 yexyBox ошибка выдает поле нажатия на баттен
0
999 / 358 / 135
Регистрация: 27.10.2006
Сообщений: 764
18.06.2016, 16:14
Вот так у меня работает
Обратите так же внимание на строку using Excel = Microsoft.Office.Interop.Excel; у вас она по-другому записана

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
27
28
29
30
31
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 xlApp = new Excel.Application(); //создаём приложение Excel
            Excel.Workbook  xlWB = xlApp.Workbooks.Open("G:\\C#\\ExcelFile.xlsx"); //открываем наш файл    
 
            Excel.Worksheet xlSht1 = xlWB.Worksheets["Лист1"];
            Excel.Worksheet xlSht2 = xlWB.Worksheets["Лист2"];
            Excel.Worksheet xlSht3 = xlWB.Worksheets["Лист3"]; 
            
            textBox1.Text = xlSht1.Range["A1"].Value.ToString();            
            textBox2.Text = xlSht2.Range["A1"].Value.ToString();
            textBox3.Text = xlSht3.Range["A1"].Value.ToString();
 
            xlWB.Close(false); //закрыть файл, не сохраняя изменений в нём. true - сохранить изменения
            xlApp.Quit(); //закрыть приложение Excel
        }
    }
}
или так

C#
1
2
3
4
5
6
7
8
9
            Excel.Application xlApp = new Excel.Application(); //создаём приложение Excel
            Excel.Workbook  xlWB = xlApp.Workbooks.Open("G:\\C#\\ExcelFile.xlsx"); //открываем наш файл    
 
            textBox1.Text = ((Excel.Worksheet)xlWB.Worksheets["Лист1"]).Range["A1"].Value.ToString();
            textBox2.Text = ((Excel.Worksheet)xlWB.Worksheets["Лист2"]).Range["A1"].Value.ToString();
            textBox3.Text = ((Excel.Worksheet)xlWB.Worksheets["Лист3"]).Range["A1"].Value.ToString();
 
            xlWB.Close(false); //закрыть файл, не сохраняя изменений. true - сохранить изменения
            xlApp.Quit(); //закрыть приложение Excel
0
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228
18.06.2016, 17:05  [ТС]
все равно на том же месте.
У меня работает такое метод:

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
27
28
using Microsoft.Office.Interop.Excel;
 
namespace WindowsFormsApplication1
{
    public partial class Form2 : Form
    {
        Microsoft.Office.Interop.Excel.Application xlexcel;
        Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
        Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
        object misValue = System.Reflection.Missing.Value;
        public Form2()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
           xlexcel = new Microsoft.Office.Interop.Excel.Application();
 
            xlexcel.Visible = true;
 
            //Open a File
            xlWorkBook = xlexcel.Workbooks.Open("D:\\test.xlsx", 0, true, 5, "", "", true,
            Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
 
           xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);
 
            xlWorkSheet.Cells[1,1] = "1fdh";
Токо он не удобен тем что надо указывать таблицу цифрой,а не названием и вместе A1 1 1 тобишь 1 строка 1 буква
0
999 / 358 / 135
Регистрация: 27.10.2006
Сообщений: 764
18.06.2016, 17:22
Так вы хотите записать значение в ячейку или считать значение ячейки в textbox ?
Попробуйте так

C#
1
2
3
xlWorkSheet = (Microsoft.Office.Interop.Excel.Worksheet)xlWorkBook.Worksheets["Лист1"];
xlWorkSheet.Range["A1"].Value = "1fdh";
//textBox1.Text = xlWorkSheet.Range["A1"].Value.ToString();
0
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228
18.06.2016, 17:39  [ТС]
Да записать. Ер се ровно та же самая ошибка.
Необработанное исключение типа "System.NullReferenceException" в WindowsFormsApplication4.exe
0
999 / 358 / 135
Регистрация: 27.10.2006
Сообщений: 764
18.06.2016, 18:21
Я попробовал, у меня всё работает. Только свой путь к файлу Excel укажите

C#
1
2
3
4
5
xlexcel = new Microsoft.Office.Interop.Excel.Application();
xlexcel.Visible = true;
xlWorkBook = xlexcel.Workbooks.Open("G:\\C#\\test.xlsx");
xlWorkSheet = xlWorkBook.Worksheets["Лист1"];
xlWorkSheet.Range["A1"].Value = "1fdh";
полный код

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 Microsoft.Office.Interop.Excel;
 
namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        Microsoft.Office.Interop.Excel.Application xlexcel;
        Microsoft.Office.Interop.Excel.Workbook xlWorkBook;
        Microsoft.Office.Interop.Excel.Worksheet xlWorkSheet;
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            xlexcel = new Microsoft.Office.Interop.Excel.Application();
            xlexcel.Visible = true;
            xlWorkBook = xlexcel.Workbooks.Open("G:\\C#\\test.xlsx");
            xlWorkSheet = xlWorkBook.Worksheets["Лист1"];
            xlWorkSheet.Range["A1"].Value = "1fdh";
        }
    }
}
1
 Аватар для by_wolvas
17 / 15 / 5
Регистрация: 25.05.2015
Сообщений: 228
18.06.2016, 18:27  [ТС]
Спасибо, не знаю как но заработало все отлично =)), еще раз спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.06.2016, 18:27
Помогаю со студенческими работами здесь

Как правильно осуществляется поиск по ячейкам DataGridView
private void button11_Click(object sender, EventArgs e) //Поиск по фамилии инженера { for (int i = 0; i <...

Как считать из файла Excel по ячейкам?
Нужно соединится с файлом Excel и считывать из него информацию по ячеечно. Кусочек кода бы или где почитать.

Как объединить строки в Excel по одинаковым ячейкам?
Есть таблицы в которых в каждой строке содержится описание товаров. (Прикладываю скрины ) К примеру есть организации импортеры с...

Как получить доступ к ячейкам Excel через C#?
Делаю один проэкт на C# в конце различных вычислений куча результатов, есть идея вывести их всех в Excel, чтобы было красиво, так вот как...

Как присвоить значения ячейкам в другом файле Excel
Добрый день. Мне необходимо сделать следующее: 1) Скопировать файлы из папки "Шаблоны" в папку "Результат" и...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru