在数据处理的时候,我们会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[];
}

最新文章

  1. QT编译时 cc1plus进程占用大量内存卡死问题解决
  2. rabbitmq之消息重入队列
  3. Java中如何将String转成Date
  4. 关于 MAXScript 获取全部文件
  5. 20160405javaweb之jdbc
  6. [CUDA] ubuntu14.04+cuda7.5下安装cudnn7.0
  7. angularjs应用骨架
  8. FPGA入门学习第一课:二分频器
  9. Android dp和px之间转换 及 获取坐标
  10. [转]Python存取XML方法简介
  11. lua-TestMore(转)
  12. 使用android的mediaplayer做成 一个demo,欢迎测试使用
  13. Vue之Vuex
  14. dede list列表页和文章页分别使用if else
  15. [Inside HotSpot] hotspot的启动流程与main方法调用
  16. [Swift]LeetCode927. 三等分 | Three Equal Parts
  17. logstash 抓取IIS日志文件写入Elasticsearch
  18. Linux系统vim几个常见配置
  19. python读取文件时提示"UnicodeDecodeError: 'gbk' codec can't decode
  20. vs中插件影响代码自动创建后台事件问题

热门文章

  1. NOIP模拟赛-2018.10.22
  2. cmd那个命令是查看端口情况的?
  3. C#控件中的KeyDown、KeyPress 与 KeyUp事件浅谈
  4. Drupal性能优化:蜜蜂培训性能优化一
  5. DC-DC Controllers Use Average-Current-Mode Control for Infotainment Applications-3939
  6. [Lydsy1805月赛]口算训练 BZOJ5358
  7. CSS之Header--我的头部我做主
  8. Spring-data-jpa 学习笔记(一)
  9. Linux随笔---tar命令
  10. 带阴影的圆形 QLabel