130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
1

Ошибка в приложении при работе с excel

09.04.2019, 14:00. Показов 529. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте написал приложение! В приложении считывает данные с Excel таблицы. У меня на пк все нормально, никаких ошибок. А вот на пк менеджера выскакивает ошибка. Из журнала вытащил:
Ошибка в приложении при работе с 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
private void WorkExcel()
        
        {
            
            Excel.Application application = new Excel.Application
            {
                DisplayAlerts = false
            };
            Excel.Workbook workbook = null;           
            Excel.Worksheet worksheet = null;
 
            try
            {                   
                workbook = application.Workbooks.Open(@"c:\\Временка\Архивный лист базы.xls");// Открываем Архивный лист базы                
                application.Visible = false;               
                worksheet = workbook.ActiveSheet as Excel.Worksheet;// Получаем активную таблицу              
                
                
                //Перенос данных в базу
                for (int i = 4; i < 10000; i++)
                {
                    Serial = null;
                    CustomerCode = null;
                    AccountNumber = null;
                    DateShipment = null;
                    DateReady = null;
                    PartyMember = null;
 
                    Serial = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Серийный_номер_База"].Column].Value);
                    CustomerCode = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Код_заказчика_База"].Column].Value);
                    AccountNumber = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Номер_заказчика_База"].Column].Value);
                    DateShipment = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Дата_уст_отг_База"].Column].Value);
                    DateReady = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Дата_склад_База"].Column].Value);
                    PartyMember = Convert.ToString(worksheet.Cells[i, (int)worksheet.Range["Партийность_База"].Column].Value);
 
                    if (Serial ==null)
                    {
                        break;
                    }
                    if (DateShipment == null & DateReady != null & PartyMember == "Заказная" & CustomerCode != "D100" & CustomerCode != "D000")
                    {
                        SQLiteConnection connect = new SQLiteConnection("Data Source=DataBase.db;Version=3;");
                        connect.Open();
                        SQLiteCommand cmd = new SQLiteCommand(connect);
                        cmd.CommandText = string.Format("SELECT count(*) FROM Регистрация WHERE Серия = '" + Serial + "' "); // Если этот запрос не выполняется
                        int countRows = Convert.ToInt32(cmd.ExecuteScalar());
 
                        if (countRows == 0)
                        {
                            cmd.CommandText = string.Format("INSERT INTO Регистрация ([Серия],[Код заказчика], [Номер счета]) VALUES('{0}', '{1}', '{2}')", Serial, CustomerCode, AccountNumber);                                      
                                    
                            cmd.ExecuteNonQuery();
                        }
                        connect.Close();
                    }
                }
 
                workbook.Close(false, Missing.Value, Missing.Value); //Закрываем Excel
                Marshal.FinalReleaseComObject(worksheet);
                Marshal.FinalReleaseComObject(workbook);
 
                ////Подготовка к убийству процесса Excel
                int ExcelPID = 0;
                int Hwnd = 0;
                Hwnd = application.Hwnd;
                Process ExcelProcess;
                GetWindowThreadProcessId((IntPtr)Hwnd, out ExcelPID);
                ExcelProcess = Process.GetProcessById(ExcelPID);
                ////Конец подготовки к убийству процесса Excel
 
                application.Quit();
                Marshal.FinalReleaseComObject(application);
 
                GC.Collect();
                GC.WaitForPendingFinalizers();
 
                ////Убийство процесса Excel
                ExcelProcess.Kill();
                ExcelProcess = null;
            }
            catch
            {
            }
 
            fgvBaseRefresh();
        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.04.2019, 14:00
Ответы с готовыми решениями:

Ошибка при работе с Excel
Определяю количество занятых ячеек (ячеек с информацией) в столбце файл-Excel, точнее номер...

Ошибка при работе с excel
Нужно прочитать значение из ячейки. Например 1,1 (A1). Возникает ошибка --------------...

Ошибка при работе с Excel
Программа взаимодействует с экселем. Если я правильно понял, у меня не подключена какая-то...

Ошибка при работе с Excel
ошибка Добавлено через 27 секунд private void button3_Click_1(object sender, RoutedEventArgs...

8
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
09.04.2019, 14:24  [ТС] 2
Протестил еще на двух компьютерах, там тоже все хорошо
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
09.04.2019, 15:15 3
.. вот тут, например
Visual Basic 6 Runtime
написано, как починить библиотеку MSVBVM60.DLL, скорее всего - в ней дело, возможно у менеждера винда не обновленная, или просто файл битый ...
0
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
09.04.2019, 15:35  [ТС] 4
carrotik, спасибо за ответ. Проблема в dll вобщем да? и ее надо починить?
0
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
09.04.2019, 15:36 5
Цитата Сообщение от MaksimkaI Посмотреть сообщение
спасибо за ответ. Проблема в dll вобщем да? и ее надо починить?
.. я не знаю ... но очень похоже ....
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.04.2019, 15:39 6
Цитата Сообщение от MaksimkaI Посмотреть сообщение
C#
1
workbook = application.Workbooks.Open(@"c:\\Временка\Архивный лист базы.xls");
а вы уверены что у каждого кому попадёт Ваша программа есть такая папка?
0
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
09.04.2019, 15:54  [ТС] 7
SeIZVeIZ, да если ее нет, то создается.

Добавлено через 49 секунд
SeIZVeIZ, да и видно, что программа работает с документом, но на каком то этапе EXCEL завершается с ошибкой
0
910 / 795 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
09.04.2019, 15:59 8
Цитата Сообщение от MaksimkaI Посмотреть сообщение
да если ее нет, то создается.
кем это интересно? по коду там ничего никто не создаёт, по "фото" логов сказать что там что-то работает невозможно
0
130 / 68 / 31
Регистрация: 24.07.2018
Сообщений: 787
09.04.2019, 16:10  [ТС] 9
SeIZVeIZ, еще раз проверял сейчас на проблемном пк. Документ открывается, все данные появляются в базе данных(сам документ представляет из себя базу данных, около 2к строк, только она вот так вот в excele сделана.сканирую данные и подходящие записи переношу в базу данных sqllite) А ошибка связана именно с самой ексель, может на этапе закрытия или еще что то, пока не знаю.
Сюда я только метод работы в excel закинул. Создается папка на другом участке кода.

Добавлено через 4 минуты
SeIZVeIZ,
C#
1
2
3
4
5
 string Puth = "C:\\Временка";
            if (!Directory.Exists(Puth))
            {
                Directory.CreateDirectory(Puth);
            }
0
09.04.2019, 16:10
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.04.2019, 16:10
Помогаю со студенческими работами здесь

Ошибка при работе с Excel файлом
В модели расположен эксель файл с именем GIS и функция которая должна с ним работать. В ней...

Странная ошибка при работе с Excel
В общем, имеется такая процедура конвертации XLS в CSV (даже не спрашивайте, зачем мне это нужно):...

Ошибка при работе с макросами Excel
Здравствуйте! При работе в Excel с толкнулся с такой ошибкой: Compile error in hidden module:...

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

Новые блоги и статьи
Интеграция Arduino и ChatGPT: Практическое руководство
InfoMaster 16.01.2025
В современную эпоху технологических инноваций интеграция искусственного интеллекта с микроконтроллерами открывает принципиально новые возможности для создания умных устройств и автоматизированных. . .
Как создать робота, управляемого ChatGPT
InfoMaster 16.01.2025
Концепция проекта В современную эпоху искусственный интеллект и робототехника становятся все более доступными для энтузиастов и разработчиков. Создание роботизированной руки, управляемой ChatGPT,. . .
Как создать ChatGPT бота в Telegram на Python
InfoMaster 16.01.2025
В современном мире технологии искусственного интеллекта становятся все более доступными для разработчиков, открывая новые возможности для создания умных и интерактивных приложений. Одним из самых. . .
Машинное обучение с помощью Python
InfoMaster 16.01.2025
Машинное обучение стало неотъемлемой частью современных технологий, позволяя компьютерам учиться на основе данных и принимать решения без явного программирования. В сочетании с языком. . .
Использование связки C# и PHP в корпоративной разработке и микросервисной архитектуре
InfoMaster 16.01.2025
Введение в интеграцию C# и PHP В современной корпоративной разработке все чаще возникает потребность в создании гибких и масштабируемых решений, способных эффективно решать широкий спектр. . .
Как использовать Kerio дома для управления сетью и пользователями
InfoMaster 16.01.2025
Использование технологий для улучшения повседневной жизни стало неотъемлемой частью современного быта. Одной из таких технологий является Kerio — мощный инструмент для управления сетью и. . .
Есть ли будущее у DVD и Blu-ray?
InfoMaster 16.01.2025
В эпоху стремительного развития цифровых технологий и повсеместного распространения потоковых сервисов вопрос о будущем физических носителей информации становится все более актуальным. Особенно остро. . .
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
Параллельное программировани­е: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru