using
System;
using
System.Collections;
using
System.Windows.Forms;
using
System.Data;
using
Excel;
using
System.Reflection;
namespace
xml03
{
public
class
C_ExcelInterface
{
private
Excel.Application xApp;
private
Excel.Workbook xBook;
private
Excel.Worksheet xSheet;
private
Excel.Range xRange;
private
ArrayList SheetsName;
private
int
SheetsCount;
private
bool
Opened;
private
bool
CheckBorder(
int
max)
{
if
(max >= SheetsCount && max <
0
)
return
false
;
else
return
true
;
}
public
C_ExcelInterface()
{
xApp =
null
;
xBook =
null
;
xSheet =
null
;
xRange =
null
;
SheetsName =
new
ArrayList();
SheetsCount =
0
;
Opened =
false
;
}
public
void
Done()
{
if
(xApp !=
null
) xApp.Quit();
GC.Collect();
}
public
void
OpenFile(
string
FileName)
{
xApp =
new
Excel.Application();
xBook = xApp.Workbooks.Open(FileName,
false
,
true
, Missing.Value,Missing.Value ,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value, Missing.Value, Missing.Value,
Missing.Value);
SheetsCount = xBook.Worksheets.Count;
for
(
int
a=
1
; a<=SheetsCount; ++a)
{
xSheet = (Excel.Worksheet) xBook.Worksheets[a];
SheetsName.Add(xSheet.Name);
};
Opened =
true
;
}
public
int
GetCountRow(
string
sheetName)
{
if
(Opened)
{
xSheet = (Excel.Worksheet)xBook.Worksheets[sheetName];
xRange = xSheet.UsedRange;
return
xRange.Rows.Count;
}
return
0
;
}
public
int
GetCountColumn(
string
sheetName)
{
if
(Opened)
{
xSheet = (Excel.Worksheet)xBook.Worksheets[sheetName];
xRange = xSheet.UsedRange;
return
xRange.Columns.Count;
}
return
0
;
}
public
int
GetCountRow(
int
sheetID)
{
if
(Opened &&
this
.CheckBorder(sheetID) )
{
xSheet = (Excel.Worksheet)xBook.Worksheets[sheetID];
xRange = xSheet.UsedRange;
return
xRange.Rows.Count;
}
return
0
;
}
public
int
GetCountColumn(
int
sheetID)
{
if
(Opened &&
this
.CheckBorder(sheetID) )
{
xSheet = (Excel.Worksheet)xBook.Worksheets[sheetID];
xRange = xSheet.UsedRange;
return
xRange.Columns.Count;
}
return
0
;
}
public
string
[] GetSheetsName()
{
if
(Opened)
{
string
[] sName =
new
string
[SheetsCount];
for
(
int
a=
0
; a!=SheetsCount; ++a)
{
sName[a] = SheetsName[a].ToString();
};
return
sName;
};
return
null
;
}
public
int
GetSheetCount()
{
return
SheetsCount;
}
public
string
GetCellValue(
string
sheetName,
int
ColumnID,
int
RowID)
{
int
cc =
this
.GetCountColumn(sheetName);
int
cr =
this
.GetCountRow(sheetName);
if
(ColumnID >= cc || RowID >= cr )
return
null
;
xSheet = (Excel.Worksheet) xBook.Worksheets[sheetName];
xRange = xSheet.UsedRange;
object
[,] xData;
xData = (System.Object[,]) xRange.get_Value( Missing.Value );
return
xData[RowID,ColumnID].ToString();
}
}
}
Syntax higlighted by Syntax highlighter, available at www.4ITDevelopers.net and www.JakNaWin.com