Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 4

Выгрузка из ListView в Excel

16.04.2024, 11:35. Показов 452. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть небольшая база данных sql , хочу из нее выгрузить таблицу в 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
 private void toolStripButton6_Click(object sender, EventArgs e)
 {
 
 
 
     Excel.Application app = new Excel.Application();
     app.Visible = true;
     Excel.Workbook wb = app.Workbooks.Add(1);
     Excel.Worksheet ws = (Excel.Worksheet)wb.Worksheets[1];
     int i = 1;
     int i2 = 1;
     foreach (ListViewItem lvi in listView1.Items)
     {
         i = 1;
         foreach (ListViewItem.ListViewSubItem lvs in lvi.SubItems)
         {
             ws.Cells[i2, i] = lvs.Text;
             i++;
         }
         i2++;
 
 
     }
     
 
 }
он работает, выгружает в excel все правильно, но, стоит только сделать какое -нибудь действие в таблице, как выходит ошибка исключения, я не понимаю как избавиться от этой ошибки, надо чтобы пользователь смог сохранить, распечатать таблицу средствами самого excel
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.04.2024, 11:35
Ответы с готовыми решениями:

Выгрузка из таблицы ListView в базу данных
Имеется ListView с 4 столбцами. В нее по нажатию кнопки загружается определенное кол-во значений (Около 5). Вопрос 1) Можно ли как то...

Выгрузка из ListView в CSV и TXT (нужен совет в визуальной реализации)
Вобщем есть ListView в котором 6 колонок (планирую еще 2 добавить), нужна идея как это все красиво визуально реализовать чтобы это было...

Выгрузка в Excel
Добрый день! Может кто сталкивался с такой проблемой. У меня стоит офис 2010, у пользователя офис 2003. В обработке я написал чтобы...

4
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
16.04.2024, 11:45
Resoul_one, Берёте ClosedXML и спокойно грузите любые данные, будь то коллекции, единичные данные, в шаблон Excel, и далее делаете с ним что хотите. Документация тут, ну и примеров в сети хватает.
0
1 / 0 / 1
Регистрация: 18.04.2022
Сообщений: 4
16.04.2024, 18:19
Лучший ответ Сообщение было отмечено Resoul_one как решение

Решение

помощь от чата gpt . вот пример кода на C#, который поможет экспортировать данные из ListView в Excel:

```csharp
using System;
using System.Data;
using System.IO;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExportToExcelExample
{
public partial class form_jqit : Form
{
public form_jqit()
{
InitializeComponent();
}

private void ExportToExcel_Click(object sender, EventArgs e)
{
ExportToExcel(listView1);
}

private void ExportToExcel(ListView listView)
{
// Создание нового объекта Excel
Excel.Application excelApp = new Excel.Application();
excelApp.Visible = true;
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.ActiveSheet;

// Заголовки столбцов
for (int col = 0; col < listView.Columns.Count; col++)
{
worksheet.Cells[1, col + 1] = listView.Columns[col].Text;
}

// Данные
for (int row = 0; row < listView.Items.Count; row++)
{
for (int col = 0; col < listView.Columns.Count; col++)
{
worksheet.Cells[row + 2, col + 1] = listView.Items[row].SubItems[col].Text;
}
}

// Сохранение файла Excel
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
saveFileDialog.FilterIndex = 1;
saveFileDialog.RestoreDirectory = true;

if (saveFileDialog.ShowDialog() == DialogResult.OK)
{
string filePath = saveFileDialog.FileName;
workbook.SaveAs(filePath);
MessageBox.Show("Экспорт завершен успешно!", "Информация", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

// Закрытие Excel
workbook.Close();
excelApp.Quit();
ReleaseObject(worksheet);
ReleaseObject(workbook);
ReleaseObject(excelApp);
}

private void ReleaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.R eleaseComObject(obj);
obj = null;
}
catch (Exception ex)
{
obj = null;
MessageBox.Show("Ошибка при освобождении объекта Excel: " + ex.ToString());
}
finally
{
GC.Collect();
}
}
}
}
```

Этот код предполагает, что есть кнопка события "ExportToExcel_Click", которая вызывает метод "ExportToExcel" при нажатии. Метод "ExportToExcel" принимает объект ListView и экспортирует его данные в файл Excel.
0
0 / 0 / 0
Регистрация: 28.03.2024
Сообщений: 4
17.04.2024, 05:26  [ТС]
проблема остается, все так же падает в исключение
0
 Аватар для Andrey-MSK
3349 / 2235 / 388
Регистрация: 14.08.2018
Сообщений: 7,557
Записей в блоге: 4
17.04.2024, 08:31
Цитата Сообщение от Resoul_one Посмотреть сообщение
все так же падает в исключение
Его нужно угадать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
17.04.2024, 08:31
Помогаю со студенческими работами здесь

Выгрузка в EXCEL
Всем привет! Есть следующий код вывода данных из БД в эксель, все работает замечательно, выгружает отлично, но заколовки столбиков берет...

Выгрузка в excel
Как сделать выгрузку в Excel справочника и документа

Выгрузка в Excel
Хочу организовать выгрузку информации в Excel, работать нужно с тремя листами, но сохраняется только последний: Попытка Excel =...

Выгрузка в excel
Здравствуйте. Заинтересовался темой выгрузки информации в excel файл. То есть создание файла, наполнение нужными листами и данными в...

Выгрузка в Excel
Добрый день! Подскажите пожалуйста как максимально просто выгрузить данные из таблицы Оракла в эксель. Обязательное условие: делать это...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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 и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru