ImageVerifierCode 换一换
格式:DOCX , 页数:53 ,大小:34.37KB ,
资源ID:9368236      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9368236.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(VSTO学习.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

VSTO学习.docx

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。private v

3、oid 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。通过这样的转接就实现VST

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

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

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

8、m.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;using

10、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 DataGridViewRowCount;/取

11、得网格控件行数 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 type,

12、 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;/用于接收数据的对象 /Http

13、Context.Current.Response.Write(:2); ApplicationClass MyExcel ;/excel对象 Workbooks MyWorkBooks;/工作簿对象集合 Workbook MyWorkBook;/工作簿 Worksheet MyWorkSheet;/标签页 Chart MyChart;/图表对象 Range MyRange, MyRange1;/范围对象 try MyExcel = new ApplicationClass();/实例化excle对象 /MyExcel.Visible = true;/在界面打开excle窗口 if (MyExc

14、el = null) /MessageBox.Show(Excel程序无法启动!, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return null; MyWorkBooks = MyExcel.Workbooks; MyWorkBook = MyWorkBooks.Add(Missing.Value); MyWorkSheet = (Worksheet)MyWorkBook.Worksheets1; MyWorkSheet.Name = workSheetName;/设置标签页名称 MyRange = MyWorkShe

15、et.get_Range(A1, F1); /取得标题 Count = 0; for (i = 0; i dgv.Columns.Count; i+) MyData0, i = dgv.HeaderRow.Cellsi.Text; Count = Count + 1; /设标题为黑体字 MyWorkSheet.get_Range(MyWorkSheet.Cells1, 1, MyWorkSheet.Cells1, Count).Font.Name = 黑体; /标题字体加粗 MyWorkSheet.get_Range(MyWorkSheet.Cells1, 1, MyWorkSheet.Cel

16、ls1, Count).Font.Bold = true; /设表格边框样式 MyWorkSheet.get_Range(MyWorkSheet.Cells1, 1, MyWorkSheet.Cells1, Count).Borders.LineStyle = 1; /-升序排列- j = 1; /从网格控件中遍历取得数据 foreach (GridViewRow var in dgv.Rows) int i1 = 0; for (i = 0; i = 0; j-) for (i = 0; i DataGridViewColumncount; i+) string str1 = dgv.Row

17、sj.Cellsi.Text; if (str1 != & dgv.Rowsj.Cellsi.Visible = true) MyDatak, i = str1; k+; /同时导出多个图表(月表) private static void exportChatr(Workbook MyWorkBook, Worksheet MyWorkSheet, int DataGridViewcount, out Chart MyChart, out Range MyRange1) /-DPPM- string str2 = DPPM, MONTH, VALUE, 柱轴标题, 柱轴标签, DPPM ; s

18、tring strR2 = C1:C + DataGridViewcount + ,L1:N + DataGridViewcount; chart2(MyWorkBook, MyWorkSheet, strR2, null, str25, str2); /-OTIF- string str1 = OTIF, MONTH, percent, 柱轴标题, 柱轴标签, OTIF ; string strR1 = C1:C + DataGridViewcount + ,F1:H + DataGridViewcount; chart2(MyWorkBook, MyWorkSheet, strR1, nu

19、ll, str15, str1); /-Problem Resolution- string str3 = Problem Resolution, MONTH, VALUE, 柱轴标题, 柱轴标签, Problem Resolution ; string strR3 = C1:C + DataGridViewcount + ,O1:Q + DataGridViewcount; chartColumLine(MyWorkBook, MyWorkSheet, out MyChart, out MyRange1, strR3, null, str35, str3); /-Audit Performa

20、nce- string str4 = Audit Performance, MONTH, VALUE, 柱轴标题, 柱轴标签, Audit Performance ; string strR4 = C1:C + DataGridViewcount + ,AI1:AI + DataGridViewcount; chartDf(MyWorkBook, MyWorkSheet, out MyChart, out MyRange1, strR4, null, str45, str4); /-Audit Performance- string str5 = Load Capacity, MONTH, t

21、otal, 柱轴标题, 柱轴标签, Load Capacity ; string strR5 = C1:C + DataGridViewcount + ,U1:U + DataGridViewcount; chartDf(MyWorkBook, MyWorkSheet, out MyChart, out MyRange1, strR5, null, str55, str5); /-FAIR Right First Time- string str6 = FAIR Right First Time, MONTH, value, 柱轴标题, 柱轴标签, FAIR Right First Time

22、; string strR6 = C1:C + DataGridViewcount + ,AD1:AE + DataGridViewcount; chartColum2All(MyWorkBook, MyWorkSheet, out MyChart, out MyRange1, strR6, null, str65, str6); /-Production Plan Adherance- string str7 = Production Plan Adherance, MONTH, total, 柱轴标题, 柱轴标签, Production Plan Adherance ; string strR7 = C1:C + DataGridViewcount + ,AA1:AB + DataGridViewcount; chart1(MyWorkBook, MyWorkSheet, out MyChart, out MyRange1, strR7, null, str

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1