uForum.uz

uForum.uz (https://uforum.uz/index.php)
-   .NET & ASP.NET (https://uforum.uz/forumdisplay.php?f=159)
-   -   C# Экспорт данных в Microsoft Word (https://uforum.uz/showthread.php?t=6917)

ulugbek 16.11.2008 09:08

C# Экспорт данных в Microsoft Word
 
Уважаемые господа, профессионалы!

Подскажите, как из DataGrid экспортировать данные в Word

Заранее благодарен всем, кто откликнется на мой вопрос.

shumbola 16.11.2008 09:53

Цитата:

Сообщение от ulugbek (Сообщение 153816)
одскажите, как из DataGrid экспортировать данные в Word

А не логичнее экспортировать данные из DataGrid в Excel? ;-)

Erkin Kuchkarov 16.11.2008 14:22

Цитата:

Сообщение от shumbola (Сообщение 153817)
А не логичнее экспортировать данные из DataGrid в Excel? ;-)

А разница? ;)

shumbola 16.11.2008 14:29

Цитата:

Сообщение от Erkin Kuchkarov (Сообщение 153826)
Цитата:

Сообщение от shumbola (Сообщение 153817)
А не логичнее экспортировать данные из DataGrid в Excel? ;-)

А разница? ;)

Честно говоря, я совсем мало знаком и с Word и с Excel. Думал, DataGrid - это табличные данные (судя по названию :), Excel - тоже самое.
Если нет разницы, то подскажите автору как экспортировать данные в Word. ;-)

Erkin Kuchkarov 16.11.2008 14:48

Цитата:

Сообщение от shumbola (Сообщение 153828)
Если нет разницы, то подскажите автору как экспортировать данные в Word. ;-)

Он просто не уточнил версию офиса... я бы подсказал ;)

Timur Naimov 16.11.2008 16:26

Не совсем понятно что должно получиться в результате... Объясните что конкретно Вы хотите увидеть в Word'e и главное зачем. Из грида на самом деле логичнее экспорт в Excel. Информаия к размышлению:
1. У объекта DataSet есть метод WriteXml - позволяет сохранить схему и данные в Xml файле, который Excel потом может легко открыть.
2. Есть множество компонентов, платных и открытых, с таким фукнционалом. Это к гуглу.
3. Как вариант CrystalReport - у него несколько функций экпорта в разные форматы.

_TrachinuS_ 17.11.2008 07:52

2 ulugbek
Скажи у теа Вин или Веб программа?

ЗЫ. Как сказал Timur Naimov оч много компонентов в нете для экспорта. Одно из них Aspose

ulugbek 17.11.2008 10:15

Цитата:

Сообщение от _TrachinuS_ (Сообщение 153926)
2 ulugbek
Скажи у теа Вин или Веб программа?


У меня тут Windows приложения и мне надо экспортировать именно в word в виде таблица , а не в Excel.:mellow:

Andrew Sklyarevsky 17.11.2008 12:31

Попробуйте взять библиотеку Gios WORD .NET Library здесь: http://www.codeproject.com/KB/string...etlibrary.aspx . Там нужно зарегистрироваться, чтобы скачать, но ресурс хороший и того стоит. Библиотека распространяется по лицензии LGPL. С помощью неё (+ System.Drawing), можно достаточно свободно генерировать Word файлы (RTF). Например, таким образом сгенерировать таблицу:

Код:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Gios.Word;
using System.Drawing;

namespace OfficeTest {
        class Program {
                static void Main(string[] args) {

                        const int cellFirstName = 0;
                        const int cellLastName = 1;

                        var data = new[] {
                                new { FirstName = "John", LastName = "Smith" },
                                new { FirstName = "Bob", LastName = "McWood" },
                                new { FirstName = "Luke", LastName = "Skywalker" }
                        };
                        WordDocument doc = new WordDocument(WordDocumentFormat.A4);
                       
                        using(Font font = new Font("Arial", 11, FontStyle.Regular)) {
                                doc.SetFont(font);
                                doc.WriteLine("Here is a table:");
                                doc.WriteLine();
                                var table = doc.NewTable(font, Color.Black, data.Length, 2, 4);
                                table.SetColumnsWidth(new[] { 25, 50 });
                                table.SetContentAlignment(ContentAlignment.MiddleLeft);
                                for (int i = 0; i < data.Length; i++) {
                                        var row = data[i];
                                        ((WordCell) table.Rows[i].Cells[cellFirstName]).Write(row.FirstName);
                                        ((WordCell) table.Rows[i].Cells[cellLastName]).Write(row.LastName);
                                }
                                table.SaveToDocument(10000, 0);
                                doc.SaveToFile(@"E:\Users\Andrew Sklyarevsky\Documents\test.doc");
                        }

                }
        }
}

Результат будет такой (при просмотре в Word 2007):

https://img.uforum.uz/images/3717169.png

_TrachinuS_ 17.11.2008 12:36

Если не лень, тогда читай и учись в MSDN'e.

Совет. Лутше найди Аспосе и кряк и радуйся жизнью!


Текущее время: 09:21. Часовой пояс GMT +5.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot
OOO «Единый интегратор UZINFOCOM»