日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 操纵 Excel(tlbimp.exe)

發布時間:2025/3/13 C# 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 操纵 Excel(tlbimp.exe) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先將excel.exe copy 到 ..\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin目錄下
利用.net 中帶的工具在命令提示符下執行tlbimp excel.exe.這樣就不會因為你的Excel是xp或2000的不同要去找不同的*.olb文件,還有一點就是因為在2000以后的版本中沒有了excel9.olb這個文件了。

通過執行tlbimp excel.exe后我們會得到excel.dll文件。

只要有了這個Excel.dll,現在我們就能使用Excel的各種操作函數了。

{?

添加對 Microsoft Excel 對象庫的引用。為此,請按照下列步驟操作:

  • 項目菜單上,單擊添加引用
  • COM 選項卡上,找到 Microsoft 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下面來:)
    如果操作的excel的格式很簡單,就是一般的表的結構,那么其實操作EXCEL文件跟操作ACCESS數據庫文件的方法幾乎一樣。
    需要注意的地方就是,1、程序會把EXCLE表中的第一行記錄作為列名;2、在使用EXCLE表的時候, 要在表名后面加上符號$

    下面,我給你帖一段如何連接和讀取EXCEL文件的代碼吧:

    ?

    DataSet?ds?=?new?DataSet();
    OleDbDataAdapter?ad;


    string?strDbPath?=?"./code.xls";
    string?strConn?=?"Provider=Microsoft.Jet.OleDb.4.0;?Data?Source="+Server.MapPath(strDbPath)+";?Extended?Properties=Excel?8.0;";

    OleDbConnection?Conn?
    =?new?OleDbConnection(strConn);

    Conn.Open();

    string?strSQL?=?"select?*?from?[股票代碼$]";


    ad?
    =?new?OleDbDataAdapter(strSQL,?Conn);
    ad.Fill(ds);

    dg1.DataSource?
    =?ds.Tables[0].DefaultView;??//dg1是一個DataGrid控件
    dg1.DataBind();??//將EXCLE中股票代碼中的記錄棒定到DataGrid控件上



    如果是在asp.net 下使用的話,要記得在? <system.web>中添加<identity impersonate="true"/>
    否則就會出現 “異常詳細信息: System.UnauthorizedAccessException: 拒絕訪問“。

    轉載于:https://www.cnblogs.com/no7dw/archive/2009/06/23/1509820.html

    與50位技術專家面對面20年技術見證,附贈技術全景圖

    總結

    以上是生活随笔為你收集整理的C# 操纵 Excel(tlbimp.exe)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。