VSTO学习复习进程

上传人:go****e 文档编号:137423965 上传时间:2020-07-08 格式:DOC 页数:34 大小:179.50KB
返回 下载 相关 举报
VSTO学习复习进程_第1页
第1页 / 共34页
VSTO学习复习进程_第2页
第2页 / 共34页
VSTO学习复习进程_第3页
第3页 / 共34页
VSTO学习复习进程_第4页
第4页 / 共34页
VSTO学习复习进程_第5页
第5页 / 共34页
点击查看更多>>
资源描述

《VSTO学习复习进程》由会员分享,可在线阅读,更多相关《VSTO学习复习进程(34页珍藏版)》请在金锄头文库上搜索。

1、VSTO学习精品文档1 VSTO可以通过项目创建office的智能文档。2 创建excle ,有三中,工作簿,模板,外接程序。我们发现使用模板可以调用form的控件,而工作簿不能。我们需要对单元格进行操作是,需要将namedRange控件引入到sheet中。然后就可以对其读写。使用代码this.namedRange1.Value2 = this.dateTimePicker1.Text ;取得值。3 绑定数据我们可以使用系统的数据源控制面板引入数据表,将数据源面板中的表字段拖入sheet中,既可以实现数据绑定,但是这是,只能显示一条数据,需要实现上下翻页,可以使用BindingSource的翻

2、页功能。代码如下:this.t_UserBindingSource.MoveNext();4 存储过程绑定在数据源中,我们也可以引用存储过程。我们只需要将该存储过程拖入sheet,系统会自动将输出参数生成文本框,返回结果生成表格,然后还会自动生成一个执行按钮。5 创建操作面板我们可以在excl工作簿右面创建一个操作面板来实现一些业务功能。 X(1) 在工作簿工程中创建新建项“操作窗格控件”ActionsPaneControl活动面板,然后我们可以在其中拖入一些控件来实现一些功能,例如拖入一个textBox,然后点击按钮后,将textBox1中的值写入到excle中的namedRang。priv

3、ate void button1_Click(object sender, EventArgs e) Globals.Sheet1.namedRange1.Value = textBox1.Text; (2) 在工作簿中实例化该活动面板,并绑定到工作簿中private void Sheet1_Startup(object sender, System.EventArgs e) ActionsPaneControl1 apc = new ActionsPaneControl1(); Globals.ThisWorkbook.ActionsPane.Controls.Add(apc); 6 给单元

4、格绑定数据通过VSTO可以在excle中改变单元格的名称,然后利用该名称对该单元格赋值。例如:我们将A1单元格改为aaa,然后再界面拖入一个textBox1。将他们绑定在一起this.aaa.DataBindings.Add(Value,textBox1,text);注意:只有改过名字的单元格可以赋值,像A2这样的单元格就不能赋值的。7 用list绑定VSTO默认情况下VSTO只能使用dataset来绑定数据库,但是我们三层架构返回的都是list。怎么办呢?我们可以变通的来解决这个问题。VSTO是可以绑定BindingSource。而BindingSource又可以绑定list。通过这样的转接

5、就实现VSTO绑定list了。为了方便可以:1 在数据源面板中添加对象数据源,将model引入2 从数据源中将model拖入excel中。Model是不能自动得到数据的。但是拖入后系统会自动帮我们创建一个BindingSource。而且这个BindingSource还与界面中的每一个字段都绑定好了。3 我们在后台代码中加入base_UserMangeInfoBindingSource.DataSource = MES.BASE.BLL.Base_UserMangeBLL.SelectAll();通过bll将数据查询出来绑定到BindingSource。但是:该方法只能单向绑定,也就是从Bind

6、ingSource绑定到界面控件。无法从界面控件将修改后的数据传给BindingSource。8 数据缓存Vsto可以进行数据缓存,当数据库离线后,在本地也可以打开缓存的数据。但是我认为这个并不好用。我们需要的是如何利用数据缓存写入数据库。上面提到的方法都是从数据库中读出数据,如果要将数据写回数据库,还得自己想办法。最直接的办法就是读取界面的数据控件。然后调用bll写回。9 保存word如果需要保存整个word文档包括他们的格式,可能VSTO就无能为力啦。VSTO只能向数据库中写入数据,不能把格式同步保存。要设置格式只能在word智能文档namedRange控件上编辑这一段落用上面的格式。然后

7、把这些namedRange段落写入数据显示出来。问题这样编写word就不方便了。很多时候我们保存word并不一定有固定的格式。因此要保存word可能还是得走保存整个word文件的办法。10 命令行打开VSTO文档传入参数很多时候,我们希望在打开VSTO文件的时候,传入参数(例如表ID),我们好在VSTO中根据参数查询绑定数据。VSTO文档没有构造函数。我们可用通过命令行传参数的办法变相实现这个方法。1 首先在使用Environment.GetCommandLineArgs()方法获取命令行中的参数。private void ThisDocument_Startup(object sender,

8、 System.EventArgs e) int id=0; string id1=; foreach (String item in Environment.GetCommandLineArgs() if (item.Contains(id:)/如果包含id MessageBox.Show(item); int a1 = item.IndexOf(:) + 1;/起始点 int a2 = item.IndexOf(;) - a1;/长度 /截取字符串中ID的值 id1 =item.Substring(a1, a2); id = System.Convert.ToInt32(id1); /绑定

9、到前台对象 bookmark1.Text = id.ToString(); 2 在调用VSTO的窗体,使用Process.Start()方法,通过命令行的方式调用 string WordPath=d:My DocumentsVisual Studio 2008ProjectsWindowsFormsApplication3WordTemplate1binDebugWordTemplate1.dotx; string id = 1234567890; Process.Start(winword,+WordPath+ /id:+id+;);11 excl导出导入数据和图表using System;

10、using System.Collections.Generic;using System.Text;using System.Web.UI.WebControls;using Excel;using System.Reflection;using System.Web;namespace BLL public class ExclOut string strUrl ;/保存路径 GridView dgv; public int DateCount;/导出条数 int DataGridViewColumncount ;/取得网格控件列数 public int DataGridViewRowCo

11、unt;/取得网格控件行数 public Object, MyData;/用于接收数据的对象 int Count, i, j; public ExclOut(GridView GridView,string url) strUrl = url ; dgv = GridView;/构造方法取得要导出的网格控件 DateCount = dgv.Rows.Count; / / 导出excl和图表 / 参数:type输出类型strRange1,strRange2图表输出范围,str图表内部名称数组,workSheetName基础表标签页名 / / public string exutExcel(int

12、 type, string strRange1, string strRange2, string str, string workSheetName) /HttpContext.Current.Response.Write(1); DataGridViewColumncount = dgv.Columns.Count;/取得网格控件列数 DataGridViewRowCount = dgv.Rows.Count+1;/取得网格控件行数 MyData = new ObjectDataGridViewRowCount + 1, DataGridViewColumncount;/用于接收数据的对象 /HttpContext.Current.Response.Write(:2); ApplicationClass MyExcel ;/excel对象 Workbooks MyWorkBooks;/工作簿对象集合 Workbook MyWorkBook;/工作簿 Worksheet MyWorkSheet;/标签页 Chart MyChart;/图表对象 Range MyRange, MyRange1;/范围对象 try MyExcel = new ApplicationCl

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号