如果你新建一个项目的话,首先要添加Microsoft.Office.Core 与Microsoft.Office.Interop.Exce这两个应用,然后就能很方便的操作了,示例代码(只实现了简单的读写):
monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: normal !important; vertical-align: baseline !important; float: none !important; display: block !important; white-space: nowrap; position: static !important; min-height: inherit !important; background-image: none !important;">1
class="keyword" style="margin: 0px !important; padding: 0px !important; outline: 0px !important; border-radius: 3px; border: 0px currentColor !important; left: auto !important; top: auto !important; width: auto !important; height: auto !important; text-align: left !important; right: auto !important; bottom: auto !important; color: #7f0055 !important; line-height: 1.1em !important; font-family: Consolas, 'Bitstream Vera Sans Mono', 'Courier New', Courier, monospace !important; font-size: 1em !important; font-style: normal !important; font-weight: bold !important; vertical-align: baseline !important; float: none !important; white-space: nowrap; position: static !important; min-height: inherit !important; background-image: none !important;">private
Excel._Application excelApp;
2
private
Workbook wbclass;
3
4
excelApp =
new
Excel.Application();
5
6
object
objOpt = System.Reflection.Missing.Value;
7
8
wbclass = (Workbook)excelApp.Workbooks.Open(
"E:\Book6.xlsx"
, objOpt,
false
, objOpt, objOpt, objOpt,
true
, objOpt, objOpt,
true
, objOpt, objOpt, objOpt, objOpt, objOpt);
上面声明,引用,并把要操作的 excel 的路径传给他
得到所有的表名:
1
List<
string
> list =
new
List<
string
>();
2
Excel.Sheets sheets = wbclass.Worksheets;
3
string
sheetNams =
string
.Empty;
4
foreach
(Excel.Worksheet sheet
in
sheets)
5
{
6
list.Add(sheet.Name);
7
}
获取某个表中的数据,这里获取的是sheet 表中的:
01
public
Excel.Worksheet GetWorksheetByName(string name)
02
{
03
Excel.Worksheet sheet =
null
;
04
Excel.Sheets sheets = wbclass.Worksheets;
05
foreach (Excel.Worksheet s in sheets)
06
{
07
if
(s.Name == name)
08
{
09
sheet = s;
10
break
;
11
}
12
}
13
return
sheet;
14
}
15
16
public
System.Data.DataTable GetDateTable(string name)
17
{
18
System.Data.DataTable dt =
new
System.Data.DataTable();
19
20
var worksheet = GetWorksheetByName(name);
//调用上面的方法,利用表名得到这张表
21
22
string cellContent;
23
24
int
iRowCount = worksheet.UsedRange.Rows.Count;
25
int
iColCount = worksheet.UsedRange.Columns.Count;
26
Excel.Range range;
27
for
(
int
iRow =
1
; iRow <= iRowCount; iRow++)
28
{
29
DataRow dr = dt.NewRow();
30
31
for
(
int
iCol =
1
; iCol <= iColCount; iCol++)
32
{
33
range = (Excel.Range)worksheet.Cells[iRow, iCol];
34
35
cellContent = (range.Value2 ==
null
) ?
""
: range.Text.ToString();
36
37
if
(iRow ==
1
)
38
{
39
dt.Columns.Add(cellContent);
40
}
41
else
42
{
43
dr[iCol -
1
] = cellContent;
44
}
45
}
46
47
if
(iRow !=
1
)
48
dt.Rows.Add(dr);
49
}
50
51
return
dt;
52
53
}
上面得到的只是
1
System.Data.DataTable
如何把数据取出来,请看下面:
1
var dataTable = GetDateTable(
"Sheet1"
);
//调用上面的方法
2
3
foreach
(DataRow row
in
dataTable.Rows)
4
{
5
string
a = (
string
)row[2];
6
string
b = (
string
)row[4];
7
8
}