Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
1

Как заполнить/считать таблицу excel.xlsx данными и не убить весь дизайн таблиц?

28.04.2018, 18:49. Показов 2269. Ответов 2

Author24 — интернет-сервис помощи студентам
Здравствуйте, есть DataGrid на форме из нее надо перенести данные в эксель файл уже с готовым дизайном таблиц.
я переношу вот так но таким способом удаляется полностью все и просто переносятся голые цифры
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
saveFileDialog1.FileName = "";
            saveFileDialog1.InitialDirectory = Directory.GetCurrentDirectory();
            saveFileDialog1.RestoreDirectory = true;
            saveFileDialog1.Title = "Сохранить таблицу расчетов";
            saveFileDialog1.Filter = "*.xlsx (xlsx)|*.xlsx";
 
            DataTable Dt = new DataTable("Waters");//зачем пока х3
            Excel.Application exeApp = new Excel.Application();//апп для данных
            exeApp.Workbooks.Add();//книга
            exeApp.DisplayAlerts = false;//уведомления
            
 
            Excel.Worksheet worksheet = (Excel.Worksheet)exeApp.ActiveSheet;
            //worksheet.PasteSpecial(Excel.XlPasteType.xlPasteAll);//типа сохр шаблона(не работает)
            for (int j = 1; j < dgv_Waters.Columns.Count; j++)
                worksheet.Cells[5, j] = dgv_Waters.Columns[j].HeaderCell.Value;//Шапка для таблицы с 5й строки
 
 
            for (int i = 1; i < dgv_Waters.RowCount; i++)
            {
                for (int j = 1; j < dgv_Waters.Columns.Count; j++)
                    worksheet.Cells[i + 5, j] = int.Parse(dgv_Waters[j, i - 1].Value.ToString());//Значения из таблицы в файл
            }
 
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                worksheet.SaveAs(saveFileDialog1.FileName);
                exeApp.Quit();
            }
            else exeApp.Quit();
Добавлено через 1 час 4 минуты
Ну ок сейчас сам допру как и что там надо делать с PasteSpecial.
И никому плюсик в репутацию не достанется вот так!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.04.2018, 18:49
Ответы с готовыми решениями:

Как запросом заполнить таблицу данными из других таблиц?
Доброго времени суток. Попал билет по базам данным. В нем задание 3 таблицы и суть задание...

Считать таблицу с .xlsx (Excel 2007) и записать в Grid
Проблема в том, что если читать .xls, то все нормально функционирует, если же .xlsx, вылетает...

Как заполнить таблицу Excel данными из CheckListBox1
Как заполнить таблицу Excel выделенными данными из CheckListBox1? В VBA есть .List, а в delphi как?

Как в процедуре создать таблицу и заполнить ее данными из других таблиц, по определенному условию
Подскажите пожалуйста, я новичок в SQL, и не совсем понимаю, как можно создать такую процедуру, в...

2
997 / 356 / 135
Регистрация: 27.10.2006
Сообщений: 764
28.04.2018, 21:55 2
Немного непонятен ваш код в разрезе ваших комментариев
Вы пишите, что ваш код удаляет данные с листа и записывает туда новые данные, но судя по вашему коду это не так

Excel.Application exeApp = new Excel.Application();//апп для данных
exeApp.Workbooks.Add();//

Вот эти 2 строки кода создают экземпляр приложения excel (новый) и в этом excel создаётся новая книга excel (новая книга это пустая чистая всегда книга без каких-либо данных)

А вам надо не создавать новую чистую книгу, а открывать уже созданную вами раннее книгу и уже а нее заносить данные из dgv.


Вам надо вместо .add использовать .open(путь к файлу excel)


P.s. если не получится, то поищите по форуму темы с моим ником, там есть примеры как открывать уже созданный ранее файл (пишу с телефона и самому искать неудобно)
1
39 / 38 / 32
Регистрация: 24.11.2014
Сообщений: 352
28.04.2018, 23:09  [ТС] 3
Да спасибо я узнал что я даун, уже часа 2 назад понял и исправил, все работает.
0
28.04.2018, 23:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.04.2018, 23:09
Помогаю со студенческими работами здесь

Заполнить таблицу в Excel данными из массива
Всем привет. В документе Excel есть таблица и она пустая. Нужно в C# заполнить ее из массива. ...

Заполнить таблицу в Excel данными с сайта
Здравствуйте, я бы хотел заполнить таблицу в Excel данными с сайта(определенной информацией, то...

Работа с данными файлов Excel .xlsx.
Здравствуйте! А у меня тоже вопрос по теме, если позволите. При записи питоном каких либо данных в...

Как заполнить новую таблицу данными...
Как заполнить новую таблицу данными, которые есть запрос к другой таблице средствами SQL? Т.е.,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru