0 / 0 / 1
Регистрация: 29.03.2015
Сообщений: 21
1

Генерация Excel файла средствами

29.03.2015, 18:11. Показов 2126. Ответов 6
Метки нет (Все метки)

Доброго времени суток!

Имеется следующий код:
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
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook book = null;
            Excel.Worksheet sheet = null;
            Excel.Range range = null;
            book = excelApp.Workbooks.Add();
            sheet = (Excel.Worksheet)book.ActiveSheet;
            
            // создание шапки в Excel файле
            sheet.Cells[1, 1] = "Дата расчёта";
            sheet.Cells[2, 1] = "Название фирмы";
            sheet.Cells[3, 1] = "Сумма оборотных активов";
            sheet.Cells[4, 1] = "Налог на добавленную стоимость";
            sheet.Cells[5, 1] = "Краткосрочные обязательства";
            sheet.Cells[6, 1] = "Долгосрочные обязательства";
            sheet.Cells[7, 1] = "Пассивы";
            sheet.Cells[8, 1] = "Прибыль от реализации";
            sheet.Cells[9, 1] = "Выручка от реализации";
            sheet.Cells[10, 1] = "Показатель риска банкротства";
            sheet.Cells[11, 1] = "Рентабельность продаж продукции";
            excelApp.Columns[1].AutoFit();
 
            int row, col = 0;
            // цикл записи данных в Excel файл
            for (row = 2; row <= j + 1; row++)
            {
                int c = 0;
                for (col = 1; col < i; col++, c++)
                {
                    sheet.Cells[col, row] = list[row - 2][c];
                }
                excelApp.Columns[row].AutoFit();
            }
            
            excelApp.Visible = true;
Нареканий по его работе нет, но есть вопросы, ответы на которые я не смог найти (хотя они банальны, на мой взгляд):
1) как задать количество создаваемых листов (по умолчанию их 3) и имя создаваемого листа?
2) как задать имя книги, чтобы при открытии оно отображалось в созданном Excel файле?

С уважением, Юрий Юрин-Комаров!

Добавлено через 3 часа 19 минут
Нарыл решение самостоятельно
C#
1
2
3
4
5
6
7
8
9
10
11
12
            Excel.Application excelApp = new Excel.Application();
            Excel.Workbook book = null;
            Excel.Worksheet sheet = null;
            Excel.Range range = null;
            // задаю количество листов в документе
            excelApp.SheetsInNewWorkbook = 1;
            // создаю книгу
            book = excelApp.Workbooks.Add();
            // обращаюсь к активному листу
            sheet = (Excel.Worksheet)book.ActiveSheet;
            // задаю имя листа
            sheet.Name = "ИМЯ ЛИСТА";
А вот задать имя книги никак не получается, потому что .Name для Workbook находится в состоянии ReadOnly, что печально.
Если кто-то всё же знает решение - жду ответа.

С уважением, Юрий Юрин-Комаров!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.03.2015, 18:11
Ответы с готовыми решениями:

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

Генерация сигнатуры файла. Потеря памяти
Нужно написать программу, которая будет генерировать сигнатуру. Файл делим на заданные блоки и их...

Генерация .cs файла с помощью механизма рефлексии
Имеется следующая лабораторная 1) Описать класс MyClass, который будет содержать:  поля...

Генерация названия файла (string) с номером
Доброго времени суток, я чего-то голову сломал, как сделать банальную вещь. Записываю много...

6
burning1ife
1447 / 1269 / 293
Регистрация: 21.09.2008
Сообщений: 3,439
Записей в блоге: 9
29.03.2015, 19:28 2
Лучший ответ Сообщение было отмечено yurinkomarov как решение

Решение

только если сохранить Workbook
C#
1
_book.SaveAs(fileName)
1
0 / 0 / 1
Регистрация: 29.03.2015
Сообщений: 21
29.03.2015, 19:30  [ТС] 3
Цитата Сообщение от kenny69 Посмотреть сообщение
только если сохранить Workbook
C#
1
_book.SaveAs(fileName)
Но в таком случае документ сохранится в "Мои документы" пользователя, если я не ошибаюсь?
0
burning1ife
1447 / 1269 / 293
Регистрация: 21.09.2008
Сообщений: 3,439
Записей в блоге: 9
29.03.2015, 19:32 4
Вы можете сохранять куда угодно
fileName - путь к файлу.
1
0 / 0 / 1
Регистрация: 29.03.2015
Сообщений: 21
29.03.2015, 19:43  [ТС] 5
Цитата Сообщение от kenny69 Посмотреть сообщение
Вы можете сохранять куда угодно
fileName - путь к файлу.
Я к тому, что это же будет фоновое сохранение, без участия пользователя.
Хотя, идея имеет место быть... Но как тогда будет себя вести программа, если файл с таким именем существует? Префикс "(Число)" автоматически будет добавляться? Или файл будет переписываться?
0
burning1ife
1447 / 1269 / 293
Регистрация: 21.09.2008
Сообщений: 3,439
Записей в блоге: 9
29.03.2015, 19:51 6
Самый простой способ это проверить - это запустить код с данной строкой

Добавлено через 1 минуту
От себя советую использовать closedxml для генерации excel файлов
http://closedxml.codeplex.com/
1
0 / 0 / 1
Регистрация: 29.03.2015
Сообщений: 21
29.03.2015, 19:56  [ТС] 7
Цитата Сообщение от kenny69 Посмотреть сообщение
Самый простой способ это проверить - это запустить код с данной строкой

Добавлено через 1 минуту
От себя советую использовать closedxml для генерации excel файлов
http://closedxml.codeplex.com/
Как буду у ПК рабочего - проверю и буду дальше мучиться.
А за ClosedXML - спасибо, изучу
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.03.2015, 19:56

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Перенаправление данных из log файла, средствами С#
Здравствуйте, столкнулся с такой проблемой. Есть сторонняя exe программа написанная не мной....

Генерация Excel-файла
Доброго времени суток вот нашел код export в ексель как добраться до стилей ширина высота ячеек,...

Генерация и загрузка excel-файла с сервера
Добрый день. С перлом работаю недавно, возникла такая проблема. Необходимо сгенерировать...

Генерация Excel файла и печать формы
Вот как-то так это все работает. При нажатии кнопок &lt;button class=&quot;btn...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.