Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/14: Рейтинг темы: голосов - 14, средняя оценка - 4.86
 Аватар для Sender88
10 / 10 / 1
Регистрация: 11.10.2010
Сообщений: 49

Экспорт в EXCEL

02.11.2010, 15:34. Показов 2942. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите разобраться. У меня есть экспорт:
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
Excel.Application oExcel = null;
            Excel.Workbook oBook = null;
            Excel.Sheets oSheetsColl = null;
            Excel.Worksheet oSheet = null;
            Excel.Range oRange = null;
 
 
            Object oMissing = System.Reflection.Missing.Value;
            oExcel = new Excel.Application();
            oExcel.Visible = true;
            oExcel.UserControl = true;
            oBook = oExcel.Workbooks.Add(oMissing);
            oSheetsColl = oExcel.Worksheets;
            oSheet = (Excel.Worksheet)oSheetsColl.get_Item("Лист1");
 
            for (int j = 0; j < dataGridView1.Columns.Count; j++)
            {
                oRange = (Excel.Range)oSheet.Cells[1, j + 1];
                oRange.Value2 = dataGridView1.Columns[j].HeaderText;
            }
 
            object[,] data = new object[dataGridView1.Rows.Count, dataGridView1.Columns.Count];
 
            // Export data
            for (int i = 0; i < dataGridView1.Rows.Count -1; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count; j++)
                {
                    data[i, j] = dataGridView1[j, i].Value;
                }
            }
 
            
            Excel.Range rg = oSheet.get_Range(oSheet.Cells[2, 1], oSheet.Cells[dataGridView1.Rows.Count +1, dataGridView1.Columns.Count]);
            rg.set_Value(Microsoft.Office.Interop.Excel.XlRangeValueDataType.xlRangeValueDefault, data);
 
oBook = null;
            oExcel = null;
            GC.Collect();
Работает он хорошо. Но вот когда я начал экспортировать таблицу, где в одной из ячеек с форматом даты была неправильная дата(0997 год вместо 1997) у меня код начал ругаться. А именно на строку
C#
1
rg.set_Value(Microsoft.Office.Interop.Excel.XlRangeValueDataType.xlRangeValueDefault, data);
Как заставить экспортировать всё как есть? Или хотя бы оставлять ячейку пустой.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2010, 15:34
Ответы с готовыми решениями:

Экспорт в Excel
The type or namespace name 'Office' does not exist in the namespace 'Microsoft' (are you missing an assembly reference?) на...

Экспорт в Excel
На форме сombobox и кнопка.по нажатии на кнопку мне нужно экспортировать из бд в Excell по условию.так.... private void...

Экспорт из C# sql в Excel
Всем привет! Таблицу SQL нужно экспортировать в Excel. Делаю таким способом: copyAlltoClipboard(); ...

3
Padawan
 Аватар для Johnny_D
473 / 323 / 30
Регистрация: 30.01.2010
Сообщений: 1,841
02.11.2010, 19:59
А что за ошибка появилась?
0
 Аватар для Sender88
10 / 10 / 1
Регистрация: 11.10.2010
Сообщений: 49
03.11.2010, 10:38  [ТС]
Выскакивает: "Исключение из HRESULT: 0x800A03EC".
Дело в том что если в гриде я ставлю нормальный формат данных то всё проходит нормально.(Изначальная дата стоит 11.11.0997 если её поменять на 11.11.1997 то всё проходит хорошо. А так заполняет ячейки в Excel'e до этой ячейки и останавливается.)
Кстати, ошибка выскакивает не только при вводе неправильной даты, так же если в ячейке находится более 255 символов.
Если бы как-то обработать исключения при возникновении этой ошибки, было бы супер

Добавлено через 2 часа 4 минуты
пробую через операторы try, catch. Не могу понять как объяснить программе что нужно переходить в следующую ячейку и продолжать заполнение. Может кто знает как получить адрес текущей ячейки?
0
 Аватар для Sender88
10 / 10 / 1
Регистрация: 11.10.2010
Сообщений: 49
08.11.2010, 09:24  [ТС]
Подскажите. Почему у меня при экспорте таблицы в EXCEL 2003 переводит данные нормально, а в EXCEL 2010 (EXCEL 2007 не пробовал) переводит данные в общем виде? Т. е. ячейки с датой в 2010-ом EXCELе получаются в общем формате, хотя формат ячеек должен стоять "Дата".
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.11.2010, 09:24
Помогаю со студенческими работами здесь

Экспорт массива в Excel
Вообщем есть вот такой код: var excelApp = new Excel.Application(); // Создание OLE-объекта. excelApp.Visible = true; string...

Экспорт в Excel: Прекращена работа программы "Microsoft Excel"
Файл сохраняется успешно, но поле строки excelApp.Quit(); Появляется окно ошибки Excel: Прекращена работа программы &quot;Microsoft...

Экспорт в DataGridView в Excel
как экспортировать таблицу datagridview в Excell на С#

Экспорт DataGridView в Excel
Доброго времени суток. Мне необходима помощь. Не выходит выполнить экспорт в Excel возникает ошибка. Помогите пожалуйста. Программа...

DataGridView экспорт в Excel
Здравствуйте,вывожу данные из Датагрида в Ексель,как вы видите на скриншоте данные выводятся не красиво. ...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru