C#在word中插入表格(包含从excel中选取表格插入到word中)

使用word时常常要用表格,我们可以直接在程序中画表格,但是那样的话,代码量大且不说,为了检查程序做出的表格是否是自己需要的,就需要进行多次的测试,这仅仅是一个项目的一个表格,我们可能就需要进行几十次的操作,为了一劳永逸,那就用我们的office这样就可以解决啦,在excel中画出表格这样不仅简单快捷,而且可以重复使用在多个项目上,(妈妈再也不用担心,表格一变再变啦)
废话不多说直接上干货
1、程序画表格:
效果图如下
C#在word中插入表格(包含从excel中选取表格插入到word中)_第1张图片

程序涉及到表格的外框线采用双实线,以及单元格的的合并
***注意***在单元格合并之后,合并的单元格遵循excel合并原则,但是位于合并单元格之后的单元格并不遵循,例如A1:A5合并之后,A6单元格的名称将改变为A2

代码如下

Word.Table table1 = newdoc.Tables.Add(newapp.Selection.Range, 11, 4, ref nothing, ref nothing);//添加一个11行4列的表格
            table1.Columns[1].Width = 70;
            table1.Columns[3].Width = 70;
            table1.Columns[2].Width = 120;
            table1.Columns[4].Width = 120;
            newdoc.Tables[1].Cell(1, 1).Range.Text = "对单元格写入的内容";
            table1.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleDouble; //表格外框是双线
            table1.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle;  //表格内框是单线
            newdoc.Tables[1].Cell(11, 2).Merge(table1.Cell(11, 4));               //合并单元格,适用于连续的多行多列合并

本方法对于简单的表格还是非常的适用的(对于word的详细操作会在后期的学习中在整理一篇文章专门去写的)
2、从excel模板中导入表格(缺陷就是教会甲方直接在excel模板中改表格,可能会被老板骂哦)

这个方法本质是在excel中编辑需要的表格,然后再将表格生成图片,然后再导入到word中(在运行过程中用户是不会看到excel的),所以在这里介绍的也是这个过程的代码

void jietu(int kaihang, int kailie, int endhang, int endlie, string biaoming)
            {
Workbook workbook = new Workbook();
                workbook.LoadFromFile(@"../../Demo.xlsx");//excel模板所在的路径
                Worksheet sheet = workbook.Worksheets[0];
                sheet.SaveToImage(kaihang, kailie, endhang, endlie).Save("farmwork_picture.png", ImageFormat.Png);//保存为图片
                newapp.Selection.EndKey(ref unite, ref nothing);
                range = newdoc.Paragraphs.Last.Range;
                linkToFile = false;
                saveWithDocument = true;
                newdoc.InlineShapes.AddPicture(A + "farmwork_picture.png",
                    ref linkToFile, ref saveWithDocument, ref range);//将保存的图片添加进word
                newapp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                newdoc.Content.InsertAfter("\n");
                newapp.Selection.EndKey(ref unite, ref nothing);
                newapp.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter;
                newapp.Selection.Font.Size = 8;//字体大小
                newdoc.Paragraphs.Last.Range.Font.Name = "宋体";
                newdoc.Paragraphs.Last.Range.Font.Bold = 0;
                newapp.Selection.TypeText(biaoming);
                }

这段程序是写好的程序块,由于英文不好所以部分变量名采用的拼音,还请见谅

小白上路,还望大家多多指教,有任何疑问也可以私信我的(虽然文章写完了,但是总感觉遗漏了什么)

你可能感兴趣的:(C#,c#)