《拓文asp.net网站内容管理系统》官方演示站。
 设为首页  
 收藏本站
 作者:黄振安
 QQ:53854651
首 页 开源拓文.NET编程网站编程网页设计图形图像数据库软件工程留言本
    站内搜索:  
您现在的位置: 拓文网络 → .NET编程 → ASP.NET → 操作Excel(C#)[正文]

热 门 文 章

相 关 文 章
  • ASP.NET性能优化
  • 在.NET框架应用程序中发送电子邮件
  • .net打包自动安装数据库
  • asp.net开发wap必备:更好的匹配手机设备
  • 用ashx动态生成文件
  • windows 2003下asp.Net站点无法使用用户名+密码的方
  • ASP.NET中17种正则表达式
  • 提高ASP.Net应用程序性能的十大方法
  • 一个通过web.Mail发送邮件的类
  • 在DataGrid里面根据日期的不同显示new图标
  • 操作Excel(C#)
     
    [作者:不详    转贴自:不详    点击数:    更新时间:2006-3-2 15:50:20]

    前面的我就不翻译了。老外操作的是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下面来:)


    首页 | 1 | 尾页  共 1 页
     
    winner 打印本页 关闭窗口

         文 章 评 论
    评论人 查看该文章的评论 发表时间
       笔 名* : 0 50分 60分 70分 80分 90分 100分
    评论内容 *: (最多1000字。当前字数:0)


    没有相关评论,欢迎您参与!

    - 关于本站 - 网站帮助 - 下载声明 - 友情连接 - 网站地图 -
    Copyright © 2005-2006 myTopWin.Com. All Rights Reserved . [桂ICP备06004496号]