Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324

Еxecel и БД

21.06.2011, 23:50. Показов 663. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Можно ли из файла Execel залить инфу sql-бд или в комбо/ лист бокс ? Чтоб дальше ней распоряжаться . Если можно пожалуйста скинте побольше инфы / кода у кого че есть . Заранее благодарен.
И к этому вопросу можно ли с Дгв то что отобразиться сохранить в Еxecel файл ?
0
38 / 38 / 5
Регистрация: 03.06.2010
Сообщений: 120
22.06.2011, 08:47
Самое простое решение в лоб - это использовать using 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
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
/// <summary>
        /// Инициализируются 2 списка. В один попадают те FiscalItemCabs, которые прошли верификацию.
        /// Во второй попадают те, что не прошли.
        /// </summary>
        public static void InitCorrectAndWrongFICListsInExcel(string pathToExcelFile, List<FiscalItemCab> lstCorrectFICs, List<FiscalItemCab> lstWrongFICs)
        {
            Microsoft.Office.Interop.Excel.Application excelApp
                    = new Microsoft.Office.Interop.Excel.Application();
            try
            {
                Workbook excelWorkbook = excelApp.Workbooks.Open(pathToExcelFile, 0, false, 5, "", "", false,
                                                                 XlPlatform.xlWindows,
                                                                 "", true, false, 0, true, false, false);
 
                Sheets excelSheets = excelWorkbook.Worksheets;
 
                Worksheet excelWorksheet = (Worksheet)excelSheets.get_Item(1);
 
                int dataRowCount = 1;
 
                Range tmpRange;
 
                while (dataRowCount < int.MaxValue)
                {
                    string strRange = string.Format("A{0}", (++dataRowCount));
                    tmpRange = excelWorksheet.get_Range(strRange);
                    object strValue = tmpRange.Cells.Value;
                    if (strValue == null)
                        break;
                    if (string.IsNullOrEmpty(strValue.ToString()))
                        break;
                }
                InvokeOnChangeStateMessage("Получение данных из Excel. Проверка формата.");
                for (int i = 3; i < dataRowCount; i++)
                {
                    tmpRange = excelWorksheet.get_Range("A" + i, "N" + i);
                    object[,] fiscalData = tmpRange.Cells.Value;
 
                    if (fiscalData.Length != 14)
                    {
                        InvokeOnChangeStateMessage("Ошибка");
                        throw new ExcelFormatDataException();
                    }
                    //FiscalItemCab - как раз класс, который содержит эти данные.
                    FiscalItemCab fiscalItemCab = new FiscalItemCab(fiscalData);
                    fiscalItemCab.IndexInExcelFile = i;
 
                    if (fiscalItemCab.VerifyFiscalItem().Code == FICVerificationResultCodes.SUCCESS)
                        lstCorrectFICs.Add(fiscalItemCab);
                    else
                        lstWrongFICs.Add(fiscalItemCab);
                }
                InvokeOnChangeStateMessage("Проверка формата закончена.");
            }
            catch (ExcelFormatDataException exc)
            {
                InvokeOnChangeStateMessage("Произошла ошибка. " + exc.Message);
            }
            catch (Exception exc)
            {
                InvokeOnChangeStateMessage("Произошла ошибка при анализе Excel-файла: " + exc.Message);
            }
            finally
            {
                excelApp.Workbooks.Close();
            }
        }//InitCorrectAndWrongFICListsInExcel
В общем пример ни на что не претендует, это выдрано из одной небольшой тулзы, которая сильно завязана на формат этого экселя. Наверняка можно работать и через DataAdapter-ы и т.п.
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
22.06.2011, 09:45
http://connectionstrings.com/excel
.NET Framework Data Provider for OLE DB
Type: .NET Framework Wrapper Class Library
Usage: System.Data.OleDb.OleDbConnectionManufac turer: Microsoft
More info about this wrapper class library »Customize string example values »
Bridging to Jet OLE DB 4.0
This is just one connection string sample for the wrapping OleDbConnection class that calls the underlying OLEDB provider. See respective OLE DB provider for more connection strings to use with this class.
Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\MyExcel.xls;Extended Properties="Excel 8.0;HDR=Yes;IMEX=1";
0
 Аватар для Midnayt
59 / 59 / 7
Регистрация: 07.12.2009
Сообщений: 324
23.06.2011, 00:49  [ТС]
Up--->
0
 Аватар для Ice_and_Fire
512 / 298 / 37
Регистрация: 22.06.2011
Сообщений: 929
23.06.2011, 09:16
Тебе привили пример двух технологий: COM и jet4.0 , а ты все "UP"...
Наверное тебе тогда нужен дословный ответ на твой вопрос
Можно ли из файла Execel залить инфу sql-бд или в комбо/ лист бокс
Ответ: МОЖНО!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Ответ Создать тему
Новые блоги и статьи
Переходник 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 Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru