网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > C# > 正文
在C#中调用Excel
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/14
下载{$ArticleTitle}原创论文样式

1. 调用Excel的COM组件。
    在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object Library"(Office 2003),然后将其加入到项目的References中即可。Visual C#.NET会自动产生相应的.NET组件文件,以后即可正常使用。

2. 打开Excel表格
    Excel.Application excel = new Excel.Application(); //引用Excel对象
    Excel.Workbook book = excel.Application.Workbooks.Add(Missing.Value); //引用Excel工作簿
    excel.Visible = bVisible; //使Excel可视

有时调用excel.Application.Workbooks.Add(Missing.Value)会遇到如下错误:
    Exception:
        Old format or invalid type library. (Exception from HRESULT: 0x80028018 (TYPE_E_INVDATAREAD))
这是Excel自身的一个bug,当本地系统环境被设置成非英文的,而Excel是英文的时候,就会出现,需要临时设定英文环境,代码如下:
    System.Globalization.CultureInfo CurrentCI = System.Threading.Thread.CurrentThread.CurrentCulture;
    System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");

3. 往Excel表格中插入数据
    Excel.Worksheet sheet = (Excel.Worksheet)book.Worksheets["Sheet1"]; // 选中当前新建Sheet(一般为Sheet1)
有两种插入方法
a. 逐格插入数据
    sheet.Cells[iRow, iCol] = value; // 左上角第一格的坐标是[1, 1]
b. 按块插入数据
    object[,] objVal = new object[Height, Length];
    // 设置数据块
    Excel.Range range = sheet.get_Range(sheet.Cells[iRow, iCol], sheet.Cells[iRow + Height, iCol + Length])
    range.Value2 = objVal;

4. 清理内存和恢复环境

    System.Runtime.InteropServices.Marshal.ReleaseComObject(range);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
    while (System.Runtime.InteropServices.Marshal.ReleaseComObject(excel) > 0) ;
    range = null;
    sheet = null;
    book = null;
    excel = null;
    GC.Collect();
    System.Threading.Thread.CurrentThread.CurrentCulture = CurrentCI;

  • 上一篇资讯: C#中UDP通信程序
  • 下一篇资讯: Velocity,微软的Memcached
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号