Сформировать документ Word, куда будут заноситься данные из раннее созданной БД - C#

Узнай цену своей работы

Формулировка задачи:

Столкнулся с программированием в C#. Нужно сформировать Word-овский документ, куда будут заноситься данные из раннее созданной БД в Access. Так вот как так по нажатию на событие button1_Click выводился определенная таблица без всяких запросов... Чисто из БД таблица... Смотрел данную статью http://support.microsoft.com/kb/316384 , разобрался, только вот с БД там работы нету...

Решение задачи: «Сформировать документ Word, куда будут заноситься данные из раннее созданной БД»

textual
Листинг программы
Microsoft.Office.Interop.Word.Application app = new Microsoft.Office.Interop.Word.Application();
            Microsoft.Office.Interop.Word.Document wd = app.Documents.Add(ref oMissing, ref oMissing,
        ref oMissing, ref oMissing);
 
            wd.Activate();
            Microsoft.Office.Interop.Word.Range rng = wd.Range(ref start, ref end);
            Microsoft.Office.Interop.Word.Table tbl;
            Object defaultTableBehavior = Type.Missing;
            Object autoFitBehavior = Type.Missing;
            object missing = System.Type.Missing;
            int ccount = dgv.Columns.Cast<DataGridViewColumn>().Count(w => w.Visible);
           tbl = wd.Tables.Add(rng, 1, ccount, ref missing, ref missing);
            List<string> col = new List<string>();
            int i = 1;
            foreach (DataGridViewColumn dgvc in dgv.Columns)
            {
                tbl.Cell(1, i).Range.Text = dgvc.HeaderText;
                tbl.Cell(1, i).Range.Font.Bold = 1;
                col.Add(dgvc.Name);
                i++;
            }
            i = 1;
            foreach (DataGridViewRow row in dgv.Rows)
            {
                Microsoft.Office.Interop.Word.Row newRow = tbl.Rows.Add(ref missing);
                newRow.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphLeft;
                newRow.Range.Font.Bold = 0;
                for (int c = 0; c < col.Count; c++)
                {
                    newRow.Cells[c + 1].Range.Text = row.Cells[col[c]].FormattedValue.ToString();
                }
                i++;
            }
            tbl.Borders.OutsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
            tbl.Borders.OutsideLineWidth = Microsoft.Office.Interop.Word.WdLineWidth.wdLineWidth050pt;
            tbl.Borders.InsideLineStyle = Microsoft.Office.Interop.Word.WdLineStyle.wdLineStyleSingle;
            string path = @"D:/Documents/" + DocName;
            wd.Application.ActiveDocument.SaveAs(path+ ".doc",
                ref missing, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing,
                ref missing, ref missing, ref missing, ref missing, ref missing);
            wd.Application.Visible = true;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.071 из 5
Похожие ответы