把Excel转换成DataTable,Excel2003+
2024-08-21 08:34:25
在数据处理的时候,我们会Excel(包含2003、2007、2010等)转换成DataTable,以便进一步操作
1、怎么访问Excel文件呢?我们可以通过OLEDB接口访问,如下:
private string GetConStr(string ExcelPath)
{
string path = ExcelPath;
if (!File.Exists(path))
return null;
string str2 = Path.GetExtension(path).ToLower();
if ((str2 != ".xls") && (str2 != ".xlsx"))
return null;
string str3 = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" + path + "; Extended Properties=Excel 8.0";
if (str2 == ".xlsx")
str3 = "Provider = Microsoft.ACE.OLEDB.12.0; Data Source=" + path + "; Extended Properties=Excel 12.0";
return str3;
}
2、读取Excel的数据到DataTable
public DataTable ExcelToDataTable(string ExcelPath)
{
return ExcelToDataTable(ExcelPath, null);
} public DataTable ExcelToDataTable(string ExcelPath, string SheetName)
{
string conStr = GetConStr(ExcelPath);
if (string.IsNullOrEmpty(conStr))
return null;
OleDbConnection connection = new OleDbConnection(conStr);
connection.Open();
if (string.IsNullOrEmpty(SheetName))
SheetName = connection.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null).Rows[]["TABLE_NAME"].ToString();
else if (!SheetName.Contains("$"))
SheetName = SheetName + "$";
OleDbDataAdapter adapter = new OleDbDataAdapter("select * from [" + SheetName + "]", conStr);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet, "[" + SheetName + "$]");
connection.Close();
return dataSet.Tables[];
}
最新文章
- QT编译时 cc1plus进程占用大量内存卡死问题解决
- rabbitmq之消息重入队列
- Java中如何将String转成Date
- 关于 MAXScript 获取全部文件
- 20160405javaweb之jdbc
- [CUDA] ubuntu14.04+cuda7.5下安装cudnn7.0
- angularjs应用骨架
- FPGA入门学习第一课:二分频器
- Android dp和px之间转换 及 获取坐标
- [转]Python存取XML方法简介
- lua-TestMore(转)
- 使用android的mediaplayer做成 一个demo,欢迎测试使用
- Vue之Vuex
- dede list列表页和文章页分别使用if else
- [Inside HotSpot] hotspot的启动流程与main方法调用
- [Swift]LeetCode927. 三等分 | Three Equal Parts
- logstash 抓取IIS日志文件写入Elasticsearch
- Linux系统vim几个常见配置
- python读取文件时提示";UnicodeDecodeError: 'gbk' codec can't decode
- vs中插件影响代码自动创建后台事件问题
热门文章
- NOIP模拟赛-2018.10.22
- cmd那个命令是查看端口情况的?
- C#控件中的KeyDown、KeyPress 与 KeyUp事件浅谈
- Drupal性能优化:蜜蜂培训性能优化一
- DC-DC Controllers Use Average-Current-Mode Control for Infotainment Applications-3939
- [Lydsy1805月赛]口算训练 BZOJ5358
- CSS之Header--我的头部我做主
- Spring-data-jpa 学习笔记(一)
- Linux随笔---tar命令
- 带阴影的圆形 QLabel