根据excel的文件的路径提取其中表的数据到DataSet中
2011-09-21 10:05
471 查看
在项目中经常涉及到基础数据的导入的问题,很多时候就需要从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中
- 根据pix飞控log文件和photo文件夹建立pos文件,提取pos数据小程序
- 将Excel或CSV文件中的数据导出到DataSet
- java使用poi把从数据库中取出的数据写入到excel文件中并保存到指定文件路径
- ]C#读取Excel数据,文件中某些数据竟然读到DataSet中却为空?
- Delphi中直接将DataSet中的数据写入Excel文件
- 将中DataSet的数据导出为EXCEL文件
- 根据xlsx模板生成excel数据文件发送邮件代码
- 利用 js-xlsx 实现 Excel 文件导入并解析Excel数据成json格式的数据并且获取其中某列数据
- C#实现DataSet内数据转化为Excel和Word文件的通用类完整实例
- 根据文件中读取的数据使用turtle绘制图形路径
- 使用JCom动态生成Excel文件,并向其中填入数据
- 【如何从excel文件中高效提取数据?】——Libxl
- 根据数据文件在窗口中动态路径绘制
- asp提取Excel文件数据
- Matlab读取Excel文件数据和提取某一关键字对应的某一列
- 利用资源头文件和动态语言库,提取动态语言库串表中的各项数据显示在Excel中
- 把服务器端数据库的DATASET数据写入客户端EXCEL文件
- 根据EXCEL文件各数据表结构定义中创建ER图实体对象