方法一:使用OleDb
using System.Data.OleDb
///
<summary>
///
返回Excel数据源
///
</summary>
///
<param name="filename">
文件路径
</param>
///
<returns></returns>
static
public
DataSet ExcelToDataSet(
string
filename)
{
DataSet ds;
string
strCon
=
"
Provider=Microsoft.Jet.OLEDB.4.0;
"
+
"
Extended Properties=Excel 8.0;
"
+
"
data source=
"
+
filename;
OleDbConnection myConn
=
new
OleDbConnection(strCon);
string
strCom
=
"
SELECT * FROM [Sheet1$]
"
;
myConn.Open();
OleDbDataAdapter myCommand
=
new
OleDbDataAdapter(strCom, myConn);
ds
=
new
DataSet();
myCommand.Fill(ds);
myConn.Close();
return
ds;
}
方法二: 使用COM
导入Microsoft.Excel
using
Excel
=
Microsoft.Office.Interop.Excel;
using
System.Diagnostics;
public
class
ExcelHelper
{
private
Excel._Application excelApp;
private
string
fileName
=
string
.Empty;
private
Excel.WorkbookClass wbclass;
public
ExcelHelper(
string
_filename)
{
excelApp
=
new
Excel.Application();
object
objOpt
=
System.Reflection.Missing.Value;
wbclass
=
(Excel.WorkbookClass)excelApp.Workbooks.Open(_filename, objOpt,
false
, objOpt, objOpt, objOpt,
true
, objOpt, objOpt,
true
, objOpt, objOpt, objOpt, objOpt, objOpt);
}
/**/
///
<summary>
///
所有sheet的名称列表
///
</summary>
///
<returns></returns>
public
List
<
string
>
GetSheetNames()
{
List
<
string
>
list
=
new
List
<
string
>
();
Excel.Sheets sheets
=
wbclass.Worksheets;
string
sheetNams
=
string
.Empty;
foreach
(Excel.Worksheet sheet
in
sheets)
{
list.Add(sheet.Name);
}
return
list;
}
public
Excel.Worksheet GetWorksheetByName(
string
name)
{
Excel.Worksheet sheet
=
null
;
Excel.Sheets sheets
=
wbclass.Worksheets;
foreach
(Excel.Worksheet s
in
sheets)
{
if
(s.Name
==
name)
{
sheet
=
s;
break
;
}
}
return
sheet;
}
/**/
///
<summary>
///
///
</summary>
///
<param name="sheetName">
sheet名称
</param>
///
<returns></returns>
public
Array GetContent(
string
sheetName)
{
Excel.Worksheet sheet
=
GetWorksheetByName(sheetName);
//
获取A1 到AM24范围的单元格
Excel.Range rang
=
sheet.get_Range(
"
A1
"
,
"
AM24
"
);
//
读一个单元格内容
//
sheet.get_Range("A1", Type.Missing);
//
不为空的区域,列,行数目
//
int l = sheet.UsedRange.Columns.Count;
//
int w = sheet.UsedRange.Rows.Count;
//
object[,] dell = sheet.UsedRange.get_Value(Missing.Value) as object[,];
System.Array values
=
(Array)rang.Cells.Value2;
return
values;
}
public
void
Close()
{
excelApp.Quit();
excelApp
=
null
;
}
}
转自:http://www.cnblogs.com/seaboy/archive/2008/10/16/1312512.html