什么视图适用于发送电子邮件和创建网页,排名优化是什么,石家庄微信网站制作,114查询版权声明#xff1a;本文为博主原创文章#xff0c;转载请在显著位置标明本文出处以及作者网名#xff0c;未经作者允许不得用于商业目的。
【例 21.7】【项目#xff1a;code21-007】填充职员表并打印。
本例使用到的Excel文件为#xff1a;职员信息登记表.xlsx#x…版权声明本文为博主原创文章转载请在显著位置标明本文出处以及作者网名未经作者允许不得用于商业目的。
【例 21.7】【项目code21-007】填充职员表并打印。
本例使用到的Excel文件为职员信息登记表.xlsx如下图所示 图21-10 职员信息登记表
窗体设计如下图所示注意为了演示方便已经填充了数据 图21-11 窗体设计
在本例中还需要掌握的知识
1、插入图片到指定位置
Worksheet.Shapes.AddPicture(Filename, LinkToFile, SaveWithDocument, Left, Top, Width, Height);
参数说明
Filename必选图片全路径。LinkToFile必选如果为True则建立图片与其源文件之间的链接关系。否则使图片成为其源文件的独立副本。通常设置为True。SaveWithDocument必选如果是True则将图片与文档一起保存。否则只链接到图片文件。通常设置为True。Left必选图片左上角相对于文档左上角的位置以磅为单位。Top必选图片左上角相对于文档顶部的位置以磅为单位。Width必选图片的宽度以磅为单位。Height必选图片的高度以磅为单位。
返回值
一个代表新图片的Shape对象。
2、打印输出
Worksheet.PrintOutEx(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName, IgnorePrintAreas);
参数说明
From可选打印的开始页号。如果省略此参数则从起始位置开始打印。To可选打印的终止页号。如果省略此参数则打印至最后一页。Copies可选打印份数。如果省略此参数则只打印一份。Preview可选如果为 True将在打印前调用打印预览。如果为 False或省略该参数则立即打印。ActivePrinter可选设置活动打印机的名称如果不设置将使用默认打印机。PrintToFile可选如果为True则打印到文件。如果没有指定 PrToFileName将提示用户输入要使用的输出文件的文件名。Collate可选如果为True则逐份打印多个副本。PrToFileName可选如果PrintToFile 设为True则该参数指定要打印到的文件名。IgnorePrintAreas可选如果为True则忽略打印区域并打印整个对象。
具体代码如下 //需要套用的模板文件 string modelFile c:\\lessons\\职员信息登记表.xlsx; //输出Excel文件 private void Button1_Click(object sender, EventArgs e) { //获得excel文件输出路径 string modelfilePath (new FileInfo(modelFile)).Directory.FullName; Microsoft.Office.Interop.Excel.Application xls new Microsoft.Office.Interop.Excel.Application(); Workbook Wbook xls.Workbooks.Open(modelFile); Worksheet Wsheet; Wsheet Wbook.Worksheets[sheet1]; //填充工作表各个单元格 Wsheet.Cells[2, 2].value txtXm.Text; Wsheet.Cells[2, 4].value txtXb.Text; Wsheet.Cells[2, 6].value txtMz.Text; Wsheet.Cells[2, 8].value txtCsny.Text; Wsheet.Cells[3, 2].value txtJkzk.Text; Wsheet.Cells[3, 4].value txtSg.Text; Wsheet.Cells[3, 6].value txtJg.Text; Wsheet.Cells[3, 8].value txtHyzk.Text; Wsheet.Cells[4, 2].value txtWhcd.Text; Wsheet.Cells[4, 4].value txtByyx.Text; Wsheet.Cells[4, 7].value txtSxzy.Text; Wsheet.Cells[5, 2].value txtGzbm.Text; Wsheet.Cells[5, 4].value txtZw.Text; Wsheet.Cells[5, 6].value txtRzsj.Text; Wsheet.Cells[5, 8].value txtZc.Text; Wsheet.Cells[6, 2].value txtLxdz.Text; Wsheet.Cells[6, 5].value txtLxdh.Text; Wsheet.Cells[7, 2].value txtGrjl.Text; Wsheet.Cells[8, 2].value txtQk.Text; Wsheet.Cells[9, 2].value txtGrtc.Text; //插入图片 int picWidth, picHeight; int picTop, picLeft; //图片高宽比单元格小4注意由于是一个合并单元格这里使用了MergeArea picWidth (int)Wsheet.Range[I2].MergeArea.Width - 4; picHeight (int)Wsheet.Range[I2].MergeArea.Height - 4; //图片左上角位置增加2 picTop (int)Wsheet.Range[I2].Top 2; picLeft (int)Wsheet.Range[I2].Left 2; //插入图片 Microsoft.Office.Interop.Excel.Shape picShape; //插入的图片位于Employee目录下以职员名称命名 picShape Wsheet.Shapes.AddPicture(modelfilePath \\Employee\\ txtXm.Text .jpg, MsoTriState.msoTrue, MsoTriState.msoTrue, picLeft, picTop, picWidth, picHeight); //按照职员姓名保存文件 Wbook.SaveAs(modelfilePath \\ txtXm.Text .xlsx); xls.Quit(); MessageBox.Show(输出完成); } //打印 private void Button2_Click(object sender, EventArgs e) { string modelfilePath (new FileInfo(modelFile)).Directory.FullName; string xlsEmployeeFile modelfilePath \\ txtXm.Text .xlsx; string printFile modelfilePath \\ txtXm.Text 1.oxps; Microsoft.Office.Interop.Excel.Application xls new Microsoft.Office.Interop.Excel.Application(); Workbook Wbook xls.Workbooks.Open(xlsEmployeeFile); Worksheet Wsheet Wbook.Worksheets[1]; //可以使用PageSetup.Pages.Cpount获得总的页数但是Excel要消耗时间和资源 //这里由于只有一页可以不考虑使用PageSetup.Pages.Cpount int pagecount 1; // Wsheet.PageSetup.Pages.Count //开始打印 Wsheet.PrintOutEx(1, pagecount, 1, false, xls.ActivePrinter, true, true, printFile, true); xls.Quit(); MessageBox.Show(打印完成); }
当按下“输出”按钮将输出对应职员信息并保存为职员名字的xlsx文件。
当按下“打印”按钮将输出的xlsx文件使用默认打印机进行打印由于笔者计算机没有连接真实打印机使用默认的“Microsoft XPS Document Writer”打印到文件如果使用真实打印机请修改PrintOutEx方法的参数使之符合打印。
生成的xlsx文件效果如下 图21-12 保存的Excel文件中的数据
打印的效果如下 图21-13 打印生成的文件
本例中更适合从数据库中读取数据填入Excel中并打印读取数据库填充数据请参看第21.2.2节。还可以将输出数据与打印相结合省略文件保存的步骤。 学习更多vb.net知识请参看vb.net 教程 目录
学习更多C#知识请参看C#教程 目录