读取Excel数据到Gridview
2010-01-08 09:52
323 查看
#region 读取Excel数据到Gridview
public void ReadExcel(string sExcelFile, GridView dgBom)
{
DataTable ExcelTable;
DataSet ds = new DataSet();
//Excel的连接
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
objConn.Open();
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1
string strSql = "select * from [" + tableName + "]";
OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
//填充数据
myData.Fill(ds, tableName);
objConn.Close();
ExcelTable = ds.Tables[tableName];
int iColums = ExcelTable.Columns.Count;//列数
int iRows = ExcelTable.Rows.Count;//行数
//定义二维数组存储 Excel 表中读取的数据
string[,] storedata = new string[iRows, iColums];
ArrayList list = new ArrayList();
for (int i = 0; i < ExcelTable.Rows.Count; i++)
{
SupermarketVO vo = new SupermarketVO();
for (int j = 1; j < ExcelTable.Columns.Count; j++)
{
//将Excel表中的数据存储到数组
storedata[i, j] = ExcelTable.Rows[i][j].ToString();
if (j == 1)
{
vo.Sup_nm = ExcelTable.Rows[i][j].ToString();
}
else if (j == 2)
{
vo.Sup_linker = ExcelTable.Rows[i][j].ToString();
}
else if (j == 3)
{
vo.Phone = ExcelTable.Rows[i][j].ToString();
}
}
//如果名称、联系人、电话都为空,则忽略该记录
if (vo.Sup_nm.Trim() == "" && vo.Sup_linker.Trim() == "" && vo.Phone.Trim() == "")
{
continue;
}
else
{
list.Add(vo);
}
}
//判断记录数,以便于处理空记录时的显示
if (list.Count < 1)
{
SupermarketVO vo = new SupermarketVO();
list.Add(vo);
//设置空记录时的显示(包含表头显示)和绑定记录
GridviewControl.GridViewDataBind(dgBom, list);
}
else
{
dgBom.DataSource = list;
dgBom.DataBind();
}
LblErrorInfo.Text = "导入操作已经完成。";
}
#endregion
public void ReadExcel(string sExcelFile, GridView dgBom)
{
DataTable ExcelTable;
DataSet ds = new DataSet();
//Excel的连接
OleDbConnection objConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + sExcelFile + ";" + "Extended Properties=Excel 8.0;");
objConn.Open();
DataTable schemaTable = objConn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
string tableName = schemaTable.Rows[0][2].ToString().Trim();//获取 Excel 的表名,默认值是sheet1
string strSql = "select * from [" + tableName + "]";
OleDbCommand objCmd = new OleDbCommand(strSql, objConn);
OleDbDataAdapter myData = new OleDbDataAdapter(strSql, objConn);
//填充数据
myData.Fill(ds, tableName);
objConn.Close();
ExcelTable = ds.Tables[tableName];
int iColums = ExcelTable.Columns.Count;//列数
int iRows = ExcelTable.Rows.Count;//行数
//定义二维数组存储 Excel 表中读取的数据
string[,] storedata = new string[iRows, iColums];
ArrayList list = new ArrayList();
for (int i = 0; i < ExcelTable.Rows.Count; i++)
{
SupermarketVO vo = new SupermarketVO();
for (int j = 1; j < ExcelTable.Columns.Count; j++)
{
//将Excel表中的数据存储到数组
storedata[i, j] = ExcelTable.Rows[i][j].ToString();
if (j == 1)
{
vo.Sup_nm = ExcelTable.Rows[i][j].ToString();
}
else if (j == 2)
{
vo.Sup_linker = ExcelTable.Rows[i][j].ToString();
}
else if (j == 3)
{
vo.Phone = ExcelTable.Rows[i][j].ToString();
}
}
//如果名称、联系人、电话都为空,则忽略该记录
if (vo.Sup_nm.Trim() == "" && vo.Sup_linker.Trim() == "" && vo.Phone.Trim() == "")
{
continue;
}
else
{
list.Add(vo);
}
}
//判断记录数,以便于处理空记录时的显示
if (list.Count < 1)
{
SupermarketVO vo = new SupermarketVO();
list.Add(vo);
//设置空记录时的显示(包含表头显示)和绑定记录
GridviewControl.GridViewDataBind(dgBom, list);
}
else
{
dgBom.DataSource = list;
dgBom.DataBind();
}
LblErrorInfo.Text = "导入操作已经完成。";
}
#endregion
相关文章推荐
- c#读取Excel数据到Gridview
- 从Excel读取数据绘制GridView的例子
- 读取Excel数据到GridView相关问题(待完善)
- 读取Excel数据绑定到Gridview进行显示
- GridView读取Excel数据
- C#如何读取Excel表格数据并显示到GridView控件
- c#读取Excel数据到Gridview
- GridView读取Excel数据
- gridview读取Excel文件中的数据,并将其导入数据库
- 读取excel的数据,在GridView中显示
- Gridview读取Excel文件中的数据,并将其导入数据库
- 读取Excel数据到Gridview (转载)
- c#读取Excel数据到Gridview
- asp.net读取excel中的数据并绑定在gridview
- PHP 读取Excel单元格中时间格式的数据
- 网页端中将表格数据和JSON数据读取(导出)到本地的excel和csv文件中
- Java 读取Excel格式xls、xlsx数据工具类
- VC6.0读取Excel数据
- asp.net读取Excel数据