操作Excel(C#)

excel

来自http://www.pconline.com.cn/pcedu/empolder/gj/vc/10203/43433.html
操作Excel(C#)
出处:PConline
责任编辑:zwg

[02-3-29 9:33]  作者:飞刀.Net/aspcn.com  

操作Excel(C#)

编译:http://www.aspcn.com 飞刀
原著:ArunGG
来源:http://www.csharphelp.com/archives/archive241.html

  前面的我就不翻译了。老外操作的是Excel 2000。所有Excel的程序操作都来源于Excel的对象库Excel9.olb.本例也只是对这个东东做一个简单的操作了解。有告诫待于朋友们的具体了解:)也算是为我们站点上天天为Excel烦的兄弟们,指一条“明路”吧:)
首先的一步就是使用Tlbimp这个工具将Excel9.0的对象库文件Excel8.olb转换成为dll,这样才能做为.Net平台Assembly来使用:)操作如下:

TlbImp Excel9.olb Excel.dll

只要有了这个Excel.dll,现在我们就能使用Excel的各种操作函数了。
下面就让我们具体看看C#是如何使用这些东东吧。

1. 创建一个新Excel的Application:

Application exc = new Application();
if (exc == null) {
Console.WriteLine("ERROR: EXCEL couldn't be started");
return 0;
}

2. 让这个工程可见:

exc.set_Visible(0, true);

3. 获取WorkBooks集合:

Workbooks workbooks = exc.Workbooks;

4. 加入新的WorkBook:

_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet, 0);

5. 获取WorkSheets集合:

_Worksheet worksheet = (_Worksheet) sheets.get_Item(1);
if (worksheet == null) {
Console.WriteLine ("ERROR in worksheet == null");
}
6. 给单元格设置变量:

Range range1 = worksheet.get_Range("C1", Missing.Value);
if (range1 == null) {
Console.WriteLine ("ERROR: range == null");
}
const int nCells = 1;
Object[] args1 = new Object[1];
args1[0] = nCells;
range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, range1, args1);

例程:

using System;
using System.Reflection;
using System.Runtime.InteropServices;
using Excel;

class Excel {
public static int Main() {
Application exc = new Application();
if (exc == null) {
Console.WriteLine("ERROR: EXCEL couldn't be started!");
return 0;
}

exc.set_Visible(0, true);
Workbooks workbooks = exc.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet, 0);
Sheets sheets = workbook.Worksheets;

_Worksheet worksheet = (_Worksheet) sheets.get_Item(1);
if (worksheet == null) {
Console.WriteLine ("ERROR: worksheet == null");
}

Range range1 = worksheet.get_Range("C1", Missing.Value);
if (range1 == null) {
Console.WriteLine ("ERROR: range == null");
}
const int nCells = 1;
Object[] args1 = new Object[1];
args1[0] = nCells;
range1.GetType().InvokeMember("Value", BindingFlags.SetProperty, null,range1, args1);
return 100;
}
}

现在我们来看看如何使用数组,他有些类似于设置单元格。仅仅需要的改变只是args2[0] = array2;
const int nCell = 5;
Range range2 = worksheet.get_Range("A1", "E1");
int[] array2 = new int [nCell];
for (int i=0; i < array2.GetLength(0); i++) {
array2[i] = i+1;
}
Object[] args2 = new Object[1];
args2[0] = array2;
range2.GetType().InvokeMember("Value", BindingFlags.SetProperty, null, range2, args2);

输出结果:

  大家需要了解Tlbimp这个工具的使用啊:)这个东东很有用,可以将普通Win32程序移植到.Net下面来:)

时间: 2024-08-03 07:16:22

操作Excel(C#)的相关文章

asp连接与操作excel的方法

excel文件也可以作为数据库使用,当然前提是它的内容要满足一定的规范,简单的做法是可以从数据库文件导出为excel文件. 1.连接字符数 有两种方式,ODBC provider和OLEDB provider (1)ODBC dim conn set conn=server.createobject("adodb.connection") conn.open "Driver={Microsoft Excel Driver (*.xls)};DBQ=" & s

ASP实例代码:asp操作Excel类

asp操作Excel类: <%'*******************************************************************'使用说明'Dim a'Set a=new CreateExcel'a.SavePath="x" '保存路径'a.SheetName="工作簿名称"       '多个工作表 a.SheetName=array("工作簿名称一","工作簿名称二")'a.Sh

ASP.NET操作EXCEL的总结篇

公元19XX年前,关于EXCEL的操作就如滔滔江水,连绵不绝,真正操作EXCEL我也是从去年下半年开始的,有些比较复杂的年度报表之类的,做起来也有点费力,不过还是都能画出来了,关于EXCEL的报表导出,考虑到导出耗时的问题我主要采用AJAX来做的,分别捕捉几个起止状态,给客户端提示3个状态:正在检索数据...--->准备导出数据...(只是从数据库成功取出,还没有读写excel文件)-->正在读写文件-->导出数据成功,当然如果哪一过程出错,都有对应的提示,只所以想到写这篇文章,主要是因

JS操作Excel小例

遇到一个功能开发,直接在页面上点击一个按钮,然后弹出一个excel,进入"打印预览"模式,用js实现,具体如下: //新建一个excel文件,设置为打印预览  function xlPrint(){    var xlApp;//存放Excel对象    var xlBook;//存放Excel工件簿文件    var xlSheet;//存放Excel活动工作表    try{      xlApp = new ActiveXObject("Excel.Applicatio

ASP操作Excel技术总结

excel|excel 目录一. 环境配置二. ASP对Excel的基本操作三. ASP操作Excel生成数据表四. ASP操作Excel生成Chart图五. 服务器端Excel文件浏览.下载.删除方案六. 附录 正文一. 环境配置服务器端的环境配置从参考资料上看,微软系列的配置应该都行,即:1.Win9x+PWS+Office2.Win2000 Professional+PWS+Office3.Win2000 Server+IIS+Office目前笔者测试成功的环境是后二者.Office的版本

C#用webbrowser在Form中嵌入并且操作Excel表格,如何让他不提示是否保存并取消保存?

excel|web 一.首先简要回顾一下如何操作Excel表             先要添加对Excel的引用.选择项目-〉添加引用-〉COM-〉添加Microsoft   Excel   9.0.(不同的office讲会有不同版本的dll文件).           using   Excel;           using   System.Reflection;                     //产生一个Excel.Application的新进程           Exce

C#在客戶端和服務端操作Excel文件

excel 一.在客戶端把數據導入到Excel文件步驟 1.創建Excel application對象,打開或生成Excel文件 //服務端創建StringBuilder對象     System.Text.StringBuilder  sb=new System .Text .StringBuilder ();     //指定客戶端執行語言 sb.Append ("<Script Language=VBScript>");     sb.Append ("&l

asp操作excel,显示数据及统计方法

这次做的活是asp操作excel,全程序是每行都标出,然后像填空一样做的.现在被我改成了动态显示每行的项,再逐行显示,最后做一个汇总. 1.FSO找到excel文件 <% Dim fso,folder,file Set fso = Server.CreateObject("Scripting.FileSystemObject") Set folder = fso.GetFolder(Server.MapPath("data")) Dim name For Ea

C#操作Excel的另类方法

前言 C#使用自带的库(Excel 11.0/5.0 Object Library)操作Excel一直以来都有些问题,最严重的要数有 时候Excel进程结束不掉这个问题,操作起来也不是很方便.其实Excel用得稍熟点的朋友就知道Excel可 以导出为html格式的文件,我想说到这里大家应该大致明白本文的意图了,下面我为大家做一个范例. 环境 1. Microsoft Office Excel 2003 正文 一.目的 从数据库导出数据到Excel中并锁定部分数据不让修改.这里以学生成绩表为例,