excel操作主要就是读和写
先说下读取,分两种方式,一种是遍历读取:
using NExcel;
//传入文件流
Workbook wb = Workbook.getWorkbook(fileStream);
//创建工作组
Sheet sheet = wb.Sheets[0];
//获取工作组的个数
int rowsCount = sheet.Rows;
//遍历工作组
for (int row = 2; row < rowsCount; row++)
{
string sheet.getCell(0, row).Contents;
decimal TotalPrice = Convert.ToDecimal(sheet.getCell(1, row).Value);
}
现在遍历的方式用的很少了,主要都用OLEDB方式,把excel当作是数据源,类似于数据库操作:
private DataSet importExcelToDataSet(string FilePath)
{
string strConn;
//OLEDB初始化
strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + FilePath + ";Extended Properties=Excel 8.0;";
//建立OLEDB链接
OleDbConnection conn = new OleDbConnection(strConn);
//读取对应工作组的数据链接
OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM [Sheet1$]",strConn);
//数据付给结果集
DataSet myDataSet = new DataSet();
try
{
myCommand.Fill(myDataSet);
}
catch(Exception ex)
{
throw new InvalidFormatException(ex.Message);
}
return myDataSet;
}