Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Visual Studio cоздатьWordдокумет с данными из Excelтаблицы  (Прочитано 9392 раз)
0 Пользователей и 1 Гость смотрят эту тему.
svetik
Постоялец

de
Offline Offline
Пол: Женский
Mысли материализуются!


« : 06-04-2009 09:23 » 

Создаю Wordдокумет(2003) и мне нужно в Combobox вывести данные из Excelтаблицы из определенного столбца, например В1:В5. Не могу потять как сделать привязку к столбцу.
Документ создается, Combobox есть, вот код.
Код:
namespace WordTemplate2
{
    public partial class ThisDocument
    {
        private void ThisDocument_Startup(object sender, System.EventArgs e)
        {
        }

        private void ThisDocument_Shutdown(object sender, System.EventArgs e)
        {
        }

        #region VSTO Designer generated code

        /// <summary>
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// </summary>
        private void InternalStartup()
        {
            this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
            this.Shutdown += new System.EventHandler(this.ThisDocument_Shutdown);
            this.Startup += new System.EventHandler(this.ThisDocument_Startup);

        }

        #endregion

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
        }
    }
}
« Последнее редактирование: 07-04-2009 13:05 от Джон » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 07-04-2009 09:26 » 

а что это барышню забыли? Улыбаюсь
svetik, ты код не цитируй, обрамляй его тегами[code][/code]
на панели кнопочка #
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 07-04-2009 11:37 » 

Цитата: Sla
а что это барышню забыли?
Я, например, совершенно не понял ни вопроса, ни отношения представленного куска кода к вопросу.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 07-04-2009 11:42 » 

dimka, дык я тоже не въехал, но барышня спросила.

зы Ну ты же знаешь как мы к ним относимся.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Джон
просто
Администратор

de
Offline Offline
Пол: Мужской

« Ответ #4 : 07-04-2009 13:07 » 

Да уж... код собственно говоря ни о чём не говорит.
Записан

Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома.
"Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash
"Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman
"All science is either physics or stamp collecting." Ernest Rutherford
"Wer will, findet Wege, wer nicht will, findet Gründe."
svetik
Постоялец

de
Offline Offline
Пол: Женский
Mысли материализуются!


« Ответ #5 : 07-04-2009 13:20 » 

Попробую попонянятей: В VS создаю WordTeplate, там рисую ручками таблицу, в одном из столбцов нужно встроить ComboBox, в него подключить столбец из Excelтаблицы, для выбора, тоесть по выбранному критерию что-то дальше будет сформировываться, но это пока не важно.
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 07-04-2009 13:27 » 

svetik, а вот и аффтор(ша) Улыбаюсь

а вот что-нибудь такое
Создать Excel aplication
Открыть книгу (excel-book)
Достучаться до нужных ячеек (range)
Заполнить свой комбобокс
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
svetik
Постоялец

de
Offline Offline
Пол: Женский
Mысли материализуются!


« Ответ #7 : 07-04-2009 13:34 » 

Понятно, как соедениться с Excel через connect?


PS:извеняюсь за опечатки. Да-да
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 08-04-2009 09:01 » 

Я, например, не знаю, что такое WordTemplate в Visual Studio - никогда не сталкивался. Всё как-то VBA обходился - без .NET-ов всяких. А представленный код на C#.

Знаю, как из .NET программы к Word и Excel подключиться и работать с ними.

svetik, давай ты начнёшь не с того, что ты делаешь, а с того, что тебе нужно сделать, и как это должно в конце концов выглядеть для пользователя. А то я совершенно не понимаю, причём тут Visual Studio. Это должен быть Word-документ с таблицей и ComboBox-ом?
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
svetik
Постоялец

de
Offline Offline
Пол: Женский
Mысли материализуются!


« Ответ #9 : 08-04-2009 09:11 » 

Дим, все дело в том что фирма программирует на VS, конкретно C#. Шеф сказал вот тебе примерчик(делать тебе один черт нечего): сделай так что бы в Word выдавался документ сделанный в студии, в этом документе должны быть возможность выбрать из списка. Список это какой-нибудь из столбцов Excelтаблицы. Вот и све тех.задание.
Таблицу я подключила,
Код:
namespace ExcelDatenAbruf
{
    class Program
    {
        static void Main(string[] args)
        {
            string File = @"C:\Dokumente und Einstellungen\mappe1.xls";
            ExcelToDataSet.GetExcelDataSet(File, true);
        }
    }


    class ExcelToDataSet
    {
     public static DataSet GetExcelDataSet(string excelFile, bool headers)
        {
            DataSet ds = new DataSet();

            OleDbConnection con = new OleDbConnection();
            con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
                "Data Source=" + excelFile + ";";

            if (headers)
                con.ConnectionString += "Extended Properties=Excel 8.0";
            else
                con.ConnectionString += "Extended Properties=Excel 8.0";

            con.Open();
            DataTable sheets = con.GetOleDbSchemaTable(
                OleDbSchemaGuid.Tables,
                new object[] { null, null, null, "TABLE" });

            foreach (DataRow sheet in sheets.Rows)
            {
                string tableName = sheet["Table_Name"].ToString();
                string sql = "SELECT * FROM [" + tableName + "]";
                OleDbDataAdapter adap = new OleDbDataAdapter(sql, con);
                adap.Fill(ds, tableName);
            }

            con.Close();
            return ds;
        }
    }
}



теперь буду список мастрить.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines