根据excel的文件的路径提取其中表的数据到DataSet中 .
2011-09-21 15:02
477 查看
在项目中经常涉及到基础数据的导入的问题,很多时候就需要从Excel中获取数据,下面提供一个从Excel文件提取数据到DataSet中方法:
/// <summary>
/// 根据excel的文件的路径提取其中表的数据
/// </summary>
/// <param name="Path">Excel文件的路径</param>
/// <returns></returns>
public static DataSet GetDataFromExcel(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn;
DataSet ds = new DataSet();
try
{
conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
string[] strTables = new string[dtSheetName.Rows.Count];
int k;
string temp;
string[] ids = new string[dtSheetName.Rows.Count];
for (k = 0; k < dtSheetName.Rows.Count; k++)
{
temp = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
strTables[k] = temp.Trim('$');
strTableNames[k] = temp;
}
OleDbDataAdapter myCommand = null;
for (k = 0; k < dtSheetName.Rows.Count; k++)
{
DataTable dt = new DataTable();
//从指定的表明查询数据,可先把所有表明列出来供用户选择
string strExcel = "select * from [" + strTableNames[k] + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(dt);
dt.TableName = strTables[k];
ds.Tables.Add(dt);
}
conn.Close();
}
catch (Exception ex)
{
//写错误日志...
string strOuput = string.Format("获取文件中数据失败,错误信息:{0},异常{1}\n",ex.Message,ex.InnerException);
//将信息写入到日志输出文件
DllComm.TP_WriteAppLogFileEx(DllComm.g_AppLogFileName, strOuput);
}
return ds;
}
/// <summary>
/// 根据excel的文件的路径提取其中表的数据
/// </summary>
/// <param name="Path">Excel文件的路径</param>
/// <returns></returns>
public static DataSet GetDataFromExcel(string Path)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + Path + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn;
DataSet ds = new DataSet();
try
{
conn = new OleDbConnection(strConn);
conn.Open();
//返回Excel的架构,包括各个sheet表的名称,类型,创建时间和修改时间等
DataTable dtSheetName = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
//包含excel中表名的字符串数组
string[] strTableNames = new string[dtSheetName.Rows.Count];
string[] strTables = new string[dtSheetName.Rows.Count];
int k;
string temp;
string[] ids = new string[dtSheetName.Rows.Count];
for (k = 0; k < dtSheetName.Rows.Count; k++)
{
temp = dtSheetName.Rows[k]["TABLE_NAME"].ToString();
strTables[k] = temp.Trim('$');
strTableNames[k] = temp;
}
OleDbDataAdapter myCommand = null;
for (k = 0; k < dtSheetName.Rows.Count; k++)
{
DataTable dt = new DataTable();
//从指定的表明查询数据,可先把所有表明列出来供用户选择
string strExcel = "select * from [" + strTableNames[k] + "]";
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(dt);
dt.TableName = strTables[k];
ds.Tables.Add(dt);
}
conn.Close();
}
catch (Exception ex)
{
//写错误日志...
string strOuput = string.Format("获取文件中数据失败,错误信息:{0},异常{1}\n",ex.Message,ex.InnerException);
//将信息写入到日志输出文件
DllComm.TP_WriteAppLogFileEx(DllComm.g_AppLogFileName, strOuput);
}
return ds;
}
相关文章推荐
- 根据excel的文件的路径提取其中表的数据到DataSet中
- 根据excel的文件的路径提取其中表的数据到DataSet中
- java使用poi把从数据库中取出的数据写入到excel文件中并保存到指定文件路径
- ]C#读取Excel数据,文件中某些数据竟然读到DataSet中却为空?
- C#把DataSet内数据转化为Excel和Word文件的通用类
- 在.NET中 用OleDB 把 DataSet 数据导出到 Excel文件里
- C#读取Excel数据,文件中某些数据读取到DataSet中却为空
- 在.NET中 用OleDB 把 DataSet 数据导出到 Excel文件里
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
- C#把DataSet内数据转化为Excel和Word文件的通用类
- C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例
- 根据xlsx模板生成excel数据文件发送邮件代码
- C#把DataSet内数据转化为Excel和Word文件的通用类
- 根据文件中读取的数据使用turtle绘制图形路径
- 把DataSet所有数据表导出到Excel表格文件(在前人基础上只是稍作了一下修改)
- 【如何从excel文件中高效提取数据?】——Libxl
- 根据数据文件在窗口中动态路径绘制
- DATASET数据保存到EXCEL文件(asp.net)
- 如何将dataSet中的数据导入到Excel文件(*.xls)整理
- 使用JCom动态生成Excel文件,并向其中填入数据