Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Печать данных из приложения и взаимодействие с Exc 
V
    Опции темы
rs1c
Дата 2.6.2010, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 9.8.2009

Репутация: нет
Всего: нет



Что есть:
1. Приложение с формами и всякими штуками не хитрыми.
2. Есть шаблон печатной формы в Excel (Таких шаблонов куча)

Что хочу сделать:
1. Кнопку на форме по нажатию которой бы открыался эксель с заполненными полями с данными взятыми из моего приложения. Для отправки на печать просто останеться нажать на Print в офисе (офис лицензирован компанией так что с ним трабл нет).

Вопрос:
1. Как это сделать?
2. Есть более легкий путь печати данных по готовым шаблонам чем Crystal Report или если не то как пользоваться Crystal Report, посоветуйте литературку с нуля.

Заранее спасибо за советы по решению данного вопроса! 
PM MAIL   Вверх
jonie
Дата 2.6.2010, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



rs1c, есть OpenXML SDK - он умеет генерировать excel2007 файлы.. со старым офисом придется работать через Excel Automation ...


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
rs1c
Дата 2.6.2010, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 9.8.2009

Репутация: нет
Всего: нет



Цитата(jonie @ 2.6.2010,  17:16)
rs1c, есть OpenXML SDK - он умеет генерировать excel2007 файлы.. со старым офисом придется работать через Excel Automation ...

А по подробней? Есть документация на это дело?
PM MAIL   Вверх
jonie
Дата 2.6.2010, 21:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 5
Всего: 118



rs1c, а вы пробывали гуглить? Попробуйте - это увлекательно.
OpenXML SDK
Excel Automation C#
И про слово dynamic гуглите (появилось в .net4)


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
rs1c
  Дата 2.6.2010, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 9.8.2009

Репутация: нет
Всего: нет



Коллеги. После экспериментов накопал в MSDN и сделал для начала так:
Код

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Excel = Microsoft.Office.Interop.Excel;
using System.Reflection; 


namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application PrXL;  // Приложение Excel
            Excel._Workbook oWB;     // Рабочая книга которую нужно открыть
            Excel._Worksheet oSheet; // Рабочая вкладка книги
        try
            {
                //Стартуем Excel с указанием пути к файлу с шаблоном (У меня офис 2010 все ок работает)
                PrXL = new Excel.Application();
                oWB = (Excel._Workbook)(PrXL.Workbooks.Open(@"c:\Forma.xlsx"));
                PrXL.Visible = true;
                oSheet = (Excel._Worksheet)oWB.ActiveSheet;
            
                //Заполняем все что нужно данными
                oSheet.Cells[9, 1] = Data1.Text;
                oSheet.Cells[2, 12] = Data2.Text;
                oSheet.Cells[4, 12] = dateTimePicker1.Text;
                
              
                // Открываем MS Excel.
                PrXL.Visible = true;
                PrXL.UserControl = true;
            }
                //Обязательно отработаем ошибки
            catch (Exception theException)
            {
                String errorMessage;
                errorMessage = "Error: ";
                errorMessage = String.Concat(errorMessage, theException.Message);
                errorMessage = String.Concat(errorMessage, " Line: ");
                errorMessage = String.Concat(errorMessage, theException.Source);

                MessageBox.Show(errorMessage, "Error");
            }
        }
    }
}


Спасибо за помощь => jonie <= Сейчас копаю OpenXML SDK - супер штука то что мне и нужно.
PM MAIL   Вверх
VirusUZ
  Дата 3.7.2010, 14:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

Репутация: -1
Всего: -2



для C# WindowsFormsApplication
Datagridview to print

Присоединённый файл ( Кол-во скачиваний: 3 )
Присоединённый файл  Print.rar 64,14 Kb
--------------------
Virus
PM MAIL   Вверх
VirusUZ
  Дата 3.7.2010, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 9.4.2010
Где: Узбекистан, Навои й обл.

Репутация: -1
Всего: -2



Код

ExcelDataReader exReader = new ExcelDataReader(FileUpload1.FileContent);
DataTable dt = exReader.WorkbookData.Tables[0];


Это сообщение отредактировал(а) VirusUZ - 3.7.2010, 14:18

Присоединённый файл ( Кол-во скачиваний: 2 )
Присоединённый файл  Excel.dll.rar 16,47 Kb
--------------------
Virus
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0740 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.