C# 读取 excel 中 sheet 及数据到DataTable
2012-05-18 15:58
597 查看
public class Utils
{
public static DataSet LoadDataFromExcel(string fileName)
{
try
{
List<string> names = new List<string>();
System.Data.DataTable dtNames = GetExcelTableName(fileName);
for (int i = 0; i < dtNames.Rows.Count; i++)
{
if (dtNames.Rows[i]["Table_Name"].ToString() == "_xlnm#_FilterDatabase") continue;
names.Add(dtNames.Rows[i]["Table_Name"].ToString());
}
string strConn = GetConString(fileName);
DataSet OleDsExcle = new DataSet();
OleDbConnection OleConn = new OleDbConnection(strConn);
OleDbDataAdapter OleDaExcel = null; OleConn.Open();
for (int i = 0; i < names.Count; i++)
{
DataSet dsTmp = new DataSet();
String sql = String.Empty;
sql += String.Format("SELECT * FROM [{0}];", names[i]);
OleDaExcel = new OleDbDataAdapter(sql, OleConn);
OleDaExcel.Fill(dsTmp, names[i]);
OleDsExcle.Tables.Add(dsTmp.Tables[0].Copy());
}
OleConn.Close();
return OleDsExcle;
}
catch
{
return null;
}
}
public static System.Data.DataTable GetExcelTableName(string fileName)
{
try
{
if (System.IO.File.Exists(fileName))
{
OleDbConnection _ExcelConn = new OleDbConnection(GetConString(fileName));
_ExcelConn.Open();
System.Data.DataTable _Table = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
_ExcelConn.Close();
return _Table;
}
return null;
}
catch
{
return null;
}
}
private static string GetConString(string fileName)
{
return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ fileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
}
}
{
public static DataSet LoadDataFromExcel(string fileName)
{
try
{
List<string> names = new List<string>();
System.Data.DataTable dtNames = GetExcelTableName(fileName);
for (int i = 0; i < dtNames.Rows.Count; i++)
{
if (dtNames.Rows[i]["Table_Name"].ToString() == "_xlnm#_FilterDatabase") continue;
names.Add(dtNames.Rows[i]["Table_Name"].ToString());
}
string strConn = GetConString(fileName);
DataSet OleDsExcle = new DataSet();
OleDbConnection OleConn = new OleDbConnection(strConn);
OleDbDataAdapter OleDaExcel = null; OleConn.Open();
for (int i = 0; i < names.Count; i++)
{
DataSet dsTmp = new DataSet();
String sql = String.Empty;
sql += String.Format("SELECT * FROM [{0}];", names[i]);
OleDaExcel = new OleDbDataAdapter(sql, OleConn);
OleDaExcel.Fill(dsTmp, names[i]);
OleDsExcle.Tables.Add(dsTmp.Tables[0].Copy());
}
OleConn.Close();
return OleDsExcle;
}
catch
{
return null;
}
}
public static System.Data.DataTable GetExcelTableName(string fileName)
{
try
{
if (System.IO.File.Exists(fileName))
{
OleDbConnection _ExcelConn = new OleDbConnection(GetConString(fileName));
_ExcelConn.Open();
System.Data.DataTable _Table = _ExcelConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
_ExcelConn.Close();
return _Table;
}
return null;
}
catch
{
return null;
}
}
private static string GetConString(string fileName)
{
return "Provider=Microsoft.ACE.OLEDB.12.0;Data Source="
+ fileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
}
}
相关文章推荐
- excel to datatable (c#用NPOI将excel文件内容读取到datatable数据表中)
- C#Winformd读取excel文件数据转化为DataTable
- C#读取excel数据到datatable中
- Excel中指定的sheet名称或索引读取数据到DataTable
- 从Excel中指定的sheet名称或索引读取数据到DataTable,以便用户更改sheet名称后仍能读取数据
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
- C#调用NPOI组件读取excel表格数据转为datatable写入word表格中并向word中插入图片/文字/书签 获得书签列表
- C#操作EXCEL之用OleDb快速读取数据到DataTable
- C#操作EXCEL之用COM对象读取数据到DataTable
- 用c#读取excel文件缺少第一行数据解决方法
- C# ado读取Excel 读不到数据
- C# 多个DataTable导入到Excel多张Sheet表
- C# 读取dbf文件中的数据到datatable中
- c#读取Excel的数据
- c#中采用OLEDB方式来读取EXCEL文件和将数据写入EXCEL文件
- C#将DataTable数据导出到EXCEL的两种方法
- C#读取Excel中的数据
- C# 读取Excel数据 并对日期是数字的进行处理
- C# 读取EXCEL文件出现数据丢失问题
- C#如何读取excel数据