成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

當前位置:首頁>>開發編程>>VS.NET>>新聞內容
C# 操作 Excel
作者:Young 發布時間:2004-8-11 13:17:35 文章來源:cnblogs

首先將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的各種操作函數了。
下面就讓我們具體看看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(
0true); 
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.UnauthorizedAccessException: 拒絕訪問“。


最新更新
·C#中使用Split分隔字符串的技
·VS2008開發中Windows Mobile
·PC機和移動設備上絕對路徑的
·C#程序加殼的方法(使用Sixx
·當前上下文中不存在名稱Conf
·請插入磁盤:Visual Studio 2
·用VS.NET讀取Flash格式文件信
·在ASP.NET中使用AJAX的簡單方
·VS.NET 2005中常用的一些代碼
·安裝VS.NET 2005 SP1補丁全攻
相關信息
·C#中使用Split分隔字符串的技巧
·PC機和移動設備上絕對路徑的獲取(C#)
·C#程序加殼的方法(使用Sixxpack)
·當前上下文中不存在名稱ConfigurationManager的解決方法
·C#的支付寶Payto接口代碼
·C#實現窗口最小化到系統托盤
·解密QQ的MsgEx.db消息文件格式
·QQ的TEA填充算法C#實現
·C#用Guid獲取不規則的唯一值(標識)
·基于Windows Mobile 5.0的掌上天氣預報設計
畫心
愚愛
偏愛
火苗
白狐
畫沙
犯錯
歌曲
傳奇
稻香
小酒窩
獅子座
小情歌
全是愛
棉花糖
海豚音
我相信
甩蔥歌
這叫愛
shero
走天涯
琉璃月
Nobody
我愛他
套馬桿
愛是你我
最后一次
少女時代
灰色頭像
斷橋殘雪
美了美了
狼的誘惑
我很快樂
星月神話
心痛2009
愛丫愛丫
半城煙沙
旗開得勝
郎的誘惑
愛情買賣
2010等你來
我叫小沈陽
i miss you
姑娘我愛你
我們都一樣
其實很寂寞
我愛雨夜花
變心的玫瑰
犀利哥之歌
你是我的眼
你是我的OK繃
貝多芬的悲傷
哥只是個傳說
丟了幸福的豬
找個人來愛我
要嫁就嫁灰太狼
如果這就是愛情
我們沒有在一起
寂寞在唱什么歌
斯琴高麗的傷心
別在我離開之前離開
不是因為寂寞才想你
愛上你等于愛上了錯
在心里從此永遠有個你
一個人的寂寞兩個人的錯
主站蜘蛛池模板: 镇赉县| 玛多县| 罗江县| 鞍山市| 肃北| 浙江省| 福泉市| 承德市| 商洛市| 庄浪县| 得荣县| 庆阳市| 雷州市| 丹棱县| 治县。| 佛山市| 威海市| 铁岭市| 华亭县| 红河县| 建湖县| 蒲江县| 多伦县| 霞浦县| 那坡县| 莫力| 开化县| 闽清县| 丹江口市| 江安县| 安远县| 乐亭县| 开远市| 饶平县| 丰台区| 汶川县| 石泉县| 栾城县| 原阳县| 垫江县| 忻州市|