Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 34

Запись данных в Excel

31.08.2019, 16:16. Показов 2026. Ответов 3

Студворк — интернет-сервис помощи студентам
Суть проблемы такова, имеется файл excel в папке с проектом, цель => прочитать его и сохранитьКак новый файл в другой папке, по ходу дела заполнить его ячейки нужными данными, имеется вот такой код открывающий файл и записывающий в него, но прикол в том, что после сохранения файла в другую папку и последующим его открытием, ячейки как были пустые так и остались.

Что уже только не пробовал, весь гугл перелопатил, устанавливал две версии excel 2013 и 2007
Сами манипуляции с Excel провожу с помощью 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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
 public void SaveInExcel(string socialNumber)
        {
            User user = null; 
            using (var unitOfWork = _unitOfWorkFactory.MakeUnitOfWork())
            {
                user = unitOfWork.UserRepository.GetAllAsync().Result.FirstOrDefault(c => c.SocialNumber == socialNumber);
                
            }
            if (user != null)
            {
                if (File.Exists($"{_savePath}{user.SocialNumber}.xlsx"))
                {
                    File.Delete($"{_savePath}{user.SocialNumber}.xlsx");
                }
 
                if (File.Exists(_filePath))
                {
                    //Открываем приложение
                    Excel.Application excelApp = new Excel.Application { Visible = false };
                    //Открываем книгу
                    Excel.Workbook wb = excelApp.Workbooks.Open(_filePath, 0, false, CorruptLoad: true);
                    //Выбираем первый лист
                    Excel.Worksheet ws = (Excel.Worksheet)wb.ActiveSheet;
 
                    //Вставка значений в первую табличку
                    ws.Cells[4, "B"] = user.Name;
                    excelApp.DisplayAlerts = false;
 
                    //Закрываем книгу и сохраняем в Results
                    wb.Close(true, $"{_savePath}{user.Name}.xlsx");
 
                    //Закрываем приложение
                    //excelApp.Quit();
 
                    //Убираем мусор, удаляем из диспетчера задач
                    System.Diagnostics.Process[] etc = System.Diagnostics.Process.GetProcesses();
                    foreach (System.Diagnostics.Process anti in etc)
                        if (anti.ProcessName.ToLower().Contains("excel")) anti.Kill();
                }
                
            }
            else
            {
                throw new NullReferenceException();
            }
 
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.08.2019, 16:16
Ответы с готовыми решениями:

Запись данных в открытый файл Excel
Подскажите как дозаписывать данные в файл excel, если этот файл открыт. Суть программы: Записывать в excel информацию о файлах в...

Загрузка данных из Excel (только чтение из файла) и запись в БД
Загрузка данных из Excel (только чтение из файла) и запись в БД. Вопрос: как проще открыть в ASP.Net Excel-файл (самое главное), и...

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

3
 Аватар для V_Monomax
1406 / 1260 / 20
Регистрация: 09.08.2011
Сообщений: 2,319
Записей в блоге: 1
02.09.2019, 11:59
Цитата Сообщение от Phoenix007 Посмотреть сообщение
wb.Close(true, $"{_savePath}{user.Name}.xlsx");
такое впечатление что вы просто закрываете файл без его сохранения.

Добавлено через 1 минуту
По хорошему алгоритм должен быть следующий:
Взяли шаблон (файл лежащий рядом с программой), скопировали в нужную папку, открыли скопированный файл, внесли изменения, сохранили изменения, закрыли файл, у вас все немного иначе, и возможно это и вызывает проблему!
0
484 / 439 / 123
Регистрация: 05.01.2010
Сообщений: 1,848
02.09.2019, 18:05
дополню: судя по всему, можно без копирования вызвать SaveAs()
0
0 / 0 / 0
Регистрация: 22.12.2018
Сообщений: 34
03.09.2019, 07:25  [ТС]
Дополню: тему можно закрыть, перерыл около 6 библиотек нашел ту которая работает корректно.
Все комментарии выше бесполезны, все работает по такому же принципу.
Открыл Excel => Открыл книгу => Открыл первый лист в книге => Добавил нужные данные => Закрыл книгу => Предложение сохранить => Указал путь для сохранения => Profit!!!!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.09.2019, 07:25
Помогаю со студенческими работами здесь

Экспорт таблицы из Ms Word и запись в MS Excel
Добрый день. Надеюсь на вашу помощь, т.к. поиск не помог. Суть в том что имеется документ Word, в нем находится таблица которую нужно...

Как ускорить запись данных в базу данных?
Добрый день. Есть следующий тестовый код: class MyClass { public int a; public int b; public int c; } void main()

Не получается чтение/запись ячеек файла Excel
В программе просто открывается файл из текущей дериктории и я пытаюсь вывести на консоль значение одной ячейки и записать значение в пустую...

Под отладкой происходит запись в Excel, а в рабочем режиме нет
Есть приложение, которое обрабатывает данные, а затем записывает их в Excel. Работа происходит с одним и тем же файлом, т.е. каждый раз...

Запись данных в базу данных SQL и выгрузка таблицы в форму
Нужно сделать 2 формы, одну с несколькими textBox'ами, чтобы при нажатии кнопки информация введённая в них, записывалась в Базу данных, и...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
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
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru