博客园  :: 首页  :: 联系 :: 管理
最近做了一个用Excel处理采集到的数据的C#程序,使用到了VSTO,这里总结一下,希望对需要的朋友有所帮助:

1、准备开发环境

 
  • VS2005

  • Office 2003

  • Microsoft Office 2003 Interop 組件。

  • Visual Studio 2005 Tools for Office

    一般情况下,Office 安装的先后没有关系
    VS2005 Team 版的带了Visual Studio 2005 Tools for Office ,但professional版本的需要自行安装


    2、编写程序

    我使用的是C#,基本上感觉很方便,但需要注意以下几点:

    1)与 Excel COM Interop Libraries 的区别

    选择区域时,VSTO  Globals.Sheet1.Cells[row, index] as Excel.Range
    但 Excel COM  正好相反

    2)需要注意写入Excel时的效率

    如果数据量比较大,最好不要逐个单元格写入,而应该使用数组写入方式:

    object[,] objData = new Object[maxRowCountData, maxColumnCountData];

     for (int i = 1; i < data.Length - 1; i++)
    //给objData 赋值

    Excel.Range CurRange = GetRange(x1, y1, x2, y2);//选择要写入的区域

    CurRange.Value2 = objData;

    3)不要使用VSOT提供的方法新建Worksheet

    Excel.Worksheet newWorksheet;
    newWorksheet = (Excel.Worksheet)Globals.ThisWorkbook.Worksheets.Add(
    missing, missing, missing, missing);

    因为该方法生成的实例和VS2005生成的实例类型不同

    具体原因参考后面的参考文章

    3、部署VSTO程序

    客户机需要的条件:

  • Microsoft .NET Framework 2.0 版

  • Office 2003

  • Microsoft Office 2003 Interop

  • Visual Studio 2005 Tools for Office Runtime

    其中Microsoft .NET Framework 2.0 的安装检测不用细说,关键就是Visual Studio 2005 Tools for Office Runtime的检测

    目前最好的解决办法就是,自定义系统必备组件,具体细节可以查看后面的参考文章,

    我已经做好的该系统必备组件也可从这里下载:(密码"vsto" )
    https://files.cnblogs.com/sunrack/packages.rar
    下载后,放到

    C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\BootStrapper\Packages


    然后就可以在安装部署项目中选择该系统必备组件了

    一下是安装时检测到没有安装Visual Studio 2005 Tools for Office Runtime时的截图