Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.07.2017, 13:54   #1
Aleksey_25
 
Регистрация: 18.07.2017
Сообщений: 5
По умолчанию Форматирование таблицы шаблона Word

[NO PARSE]Всем доброго дня.

У меня возникла такая сложность есть Datagridview в который происходит отгрузка и связка из двух таблиц БД.

далее при экспорте этих данных в заранее подготовленный шаблон документа Word у меня начиная со строки сразу после заголовка таблицы все строки белые.

Вопрос: как можно в C# сделать что бы в строке у которой в первом столбце таблице указаны какие либо данные/или текст был изменен цвет, например серый цвет.[/NO PARSE]

Код:
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                Word.Application wordapp = new Word.Application();
                wordapp.Visible = true;
                Object template = "Путь к шаблону\\Sheet_model.docx";
                Object newTemplate = false;
                Object documentType = Word.WdNewDocumentType.wdNewBlankDocument;
                Object visible = true;
                Word._Document worddoc;
                //Создаем документ
                worddoc = wordapp.Documents.Add(ref template, ref newTemplate, ref documentType, ref visible);

                       Object bookmarkNameObj = "FIO";
                       Word.Range bookmarkRange = null;
                       bookmarkRange = worddoc.Bookmarks.get_Item(ref bookmarkNameObj).Range;
                       bookmarkRange.Text = comboBox1.Text;

                       bookmarkNameObj = "dt_begin";
                       bookmarkRange = null;
                       bookmarkRange = worddoc.Bookmarks.get_Item(ref bookmarkNameObj).Range;
                       bookmarkRange.Text = dateTimePicker1.Text;

                       bookmarkNameObj = "dt_end";
                       bookmarkRange = null;
                       bookmarkRange = worddoc.Bookmarks.get_Item(ref bookmarkNameObj).Range;
                       bookmarkRange.Text = dateTimePicker2.Text;

                       bookmarkNameObj = "CheckTypes";
                       bookmarkRange = null;
                       bookmarkRange = worddoc.Bookmarks.get_Item(ref bookmarkNameObj).Range;
                       bookmarkRange.Text = comboBox2.Text;

                bookmarkNameObj = "table";
                bookmarkRange = null;
               
                bookmarkRange = worddoc.Bookmarks.get_Item(ref bookmarkNameObj).Range;

                


                Object behiavor = Word.WdDefaultTableBehavior.wdWord9TableBehavior;
                Object autoFitBehiavor = Word.WdAutoFitBehavior.wdAutoFitFixed;
                int columns = 4;
                int rows = dataGridView1.RowCount + 1;
                worddoc.Tables.Add(bookmarkRange, rows, columns, ref behiavor, ref autoFitBehiavor);
                worddoc.Tables[1].Cell(1, 1).Range.Text = "Дата заказа";
                worddoc.Tables[1].Cell(1, 1).Range.Bold = 1;
                worddoc.Tables[1].Cell(1, 1).Range.Font.Size = 12;
                worddoc.Tables[1].Cell(1, 1).Range.Shading.BackgroundPatternColor = WdColor.wdColorGray10;
                worddoc.Tables[1].Cell(1, 2).Range.Text = "Наименование заказа";
                worddoc.Tables[1].Cell(1, 2).Range.Bold = 1;
                worddoc.Tables[1].Cell(1, 2).Range.Font.Size = 12;
                worddoc.Tables[1].Cell(1, 2).Range.Shading.BackgroundPatternColor = WdColor.wdColorGray10;
                worddoc.Tables[1].Cell(1, 3).Range.Text = "Тип заказа";
                worddoc.Tables[1].Cell(1, 3).Range.Bold = 1;
                worddoc.Tables[1].Cell(1, 3).Range.Font.Size = 12;
                worddoc.Tables[1].Cell(1, 3).Shading.BackgroundPatternColor = WdColor.wdColorGray10;
                worddoc.Tables[1].Cell(1, 4).Range.Text = "Описание заказа";
                worddoc.Tables[1].Cell(1, 4).Range.Bold = 1;
                worddoc.Tables[1].Cell(1, 4).Range.Font.Size = 12;
                worddoc.Tables[1].Cell(1, 4).Range.Shading.BackgroundPatternColor = WdColor.wdColorGray10;
                worddoc.Tables[1].Rows[1].Alignment = Word.WdRowAlignment.wdAlignRowCenter;
                worddoc.Tables[1].Range.Cells.VerticalAlignment = Word.WdCellVerticalAlignment.wdCellAlignVerticalCenter;
                //толщина контура таблицы
                worddoc.Tables[1].Borders.OutsideLineWidth = Word.WdLineWidth.wdLineWidth150pt;
                //worddoc.Tables[1].Cell(1, 4).Width = 200;
                //worddoc.Tables[1].Columns[5].Delete();

                for (int j = 0; j < rows - 1; j++)
                {
                    for (int i = 1; i < columns + 1; i++)
                    {
                        //worddoc.Tables[1].Cell(j + 2, i + 0).Range.Text = dataGridView1[i, j].Value.ToString();
                        worddoc.Tables[1].Cell(j + 2, i).Range.Text = dataGridView1[i, j].Value.ToString();
                    }

                    for (int s = 0; s == rows; s++)
                    {
                       worddoc.Tables[1].Columns[1].Shading.BackgroundPatternColor = WdColor.wdColorAqua;
                    }

                }
                wordapp.Visible = true;
            }
            catch (Exception ex)
            {
                MessageBox.Show("" + ex);
            }
        }
а там где в первом столбце таблицы записи отсутствуют цвет оставался белый (см. скриншот)
Изображения
Тип файла: jpg DGV.JPG (94.8 Кб, 156 просмотров)

Последний раз редактировалось Aleksey_25; 28.07.2017 в 14:06.
Aleksey_25 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Заполнение Шаблона Word из DataGridView JinAnton C# (си шарп) 0 04.01.2014 23:24
Вставка таблицы в Word как листа Excel и форматирование его размеров Nalim06 Microsoft Office Excel 0 08.10.2012 15:08
открытие шаблона Word из Excel ольгаг Microsoft Office Excel 2 18.09.2011 21:16
Заполнение шаблона Word по меткам ,? Paskal1 Общие вопросы Delphi 2 30.12.2010 13:56
Как вычислять значения вне таблицы WORD, с использованием данных из таблицы WORD prikolist Microsoft Office Word 6 21.11.2008 13:17