您的位置:首页 > 运维架构

Microsoft.Office.Interop.Excel”不能用 操作excel

2008-09-04 13:31 453 查看
在家用笔记本搞好的程序,到公司后添加了Microsoft Excel11 Object Libray之后,发现引用里面的” Microsoft.Office.Interop.Excel”不能用。重新引用也不行,
通过执行tlbimp excel.exe后可以得到excel.dll文件。

cd\到根目录

cd program files\........vs 的bin 下面

tlbimp excel.exe

使用Tlpimp.exe和Excel.olb来生成Excel.dll,然后引用。

搞了半天还是不行,
后来终于看到了一篇上面说是安装office2003的时候要选择“.Net可编程性支持”。后来把office2003修改了下,重新选择
1、 安装office2003的时候,请选择“选择应用程序的高级自定义”:

2、请选择“.Net可编程性支持”下选择菜单的“从本机运行全部程序”。

先得到数组,一次填充快多哒!!!

2 objRecordset.MoveFirst();

3 for (int i = 0; i < nRows; i++)

4

18 Excel.Range StringRange = (Excel.Range)oSheet.Cells[9, 1];//从第9行第一列开始填充

19

20 StringRange = StringRange.get_Resize(nRows, 5);//填充范围为记录集行数,5列

21

22 StringRange.Value2 = strValues;

总算可以了,哈哈。。。。。。。。。。。。。。。。。。
把从supermap 中查询到的记录集添加到窗体中的excel 中,不能直接调用excel,不然用户会觉得你在忽悠他,
可以采用另外的控件(这一次叫它 axOA1),好了不多写了,上班时间,老大看到会骂人嘀

1axOA1 操作

2 2

3 3 using System.Reflection;

4 4using Excel = Microsoft.Office.Interop.Excel;

5 5using ExcelApplication = Microsoft.Office.Interop.Excel.Application;

6 6

7 7

8 8 ExcelApplication oExcel = new ExcelApplication();

9 9 Excel.Workbook oBook;//= new Microsoft.Office.Interop.Excel.Workbook();

1010 Excel.Worksheet oSheet;// = new Microsoft.Office.Interop.Excel.Worksheet();

1111 Excel.Range oRange;

1212

1313 AppPath = Application.StartupPath + "\\Template\\Sample.xls";

1414 axOA1.Open(AppPath);

1515

1616

1717 oBook = (Excel.Workbook)axOA1.GetIDispatch();

1818 oExcel = oBook.Application;

1919 oSheet = (Excel.Worksheet)oBook.Worksheets[1];

2020

2121

2222 // oRange.Select();

2323

2424 nRows = objRecordset.RecordCount;

2525 objFieldInfos=objRecordset .GetFieldInfos();

2626

2727 nCols = objRecordset.GetFieldInfos().Count;

2828 string[] s=new string [nCols];

2929 string[,] strValues1 = new string[nRows, nCols];

3030

3131 double[,] dSum = new double[nRows, nCols];

3232

3333 oSheet.Cells[1, 1] = "(" + Common.strDtName + "统计表)" + Common.strQuery;

3434 oRange = oSheet.get_Range("A1", "E1");

3535

3636 oRange.Font.Size = 20;

3737 // oRange.Font.Color = (object)Color.Red;

3838

3939 if (nRows>0 &&nCols>0)

4063
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐