VSTO:C#获取文档控件的值

基础知识准备:
 
 string[] inputfileNames = { @"C:\1.xls", @"C:\2.xls" };
inputfileName=inputfileNames [1];
Excel.Workbook myWorkbook = app.Workbooks.Open(inputfileName, Type.Missing, true, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing);//创建myWorkbook
 
Excel.Sheets mySheets = myWorkbook.Worksheets;
Excel.Worksheet myWorksheet = mySheets.get_Item(1) as Excel.Worksheet;
Excel.CheckBoxes chxsBoxes = (Excel.CheckBoxes) myWorksheet.CheckBoxes(Type.Missing);//获取CheckBox控件
Dictionary<int, Excel.CheckBox> dict = new Dictionary<int, Excel.CheckBox>();

 附录:

1、checkbox 默认值:Value为-4146,选中时为1

office中对应的控件添加操作为:

 

2、如果导航中找不到开发工具选项office2013中可做如下操作:

文件→选项

 

 Update ---------------------------2017年4月17日 09:58:42----------------------

之前把所有的参数都写死,这样程序不够灵活,所以想着能不能把参数作为配置文件的形式传进来,但是效果都不理想,今天想到既然可以读取单元格的值,那我为什么不把参数写在单元格中呢?(这真是一个好主意)

 private void button1_Click(object sender, EventArgs e)
        {
            Excel.Application app = new Excel.Application();

            //打开一个excel文件,open方法的参数大家可以去msdn上查询
            Excel.Range r1 = this.Range["B2", missing];
            Excel.Range r2 = this.Range["B3", missing];
            string filepath = r1.Text;//文件夹路径
            string tablename = r2.Text;//更新的表名

            DirectoryInfo folder = new DirectoryInfo(filepath);

            foreach (FileInfo file in folder.GetFiles("*.xls"))
            {
                ExportValue(app, file,tablename);//你要执行的操作
            }
        }

这样是不是很灵活了呢?

下载源码

 

posted @ 2017-04-12 16:39  FengLu-1  阅读(1323)  评论(0编辑  收藏  举报