.NET中使用OleDb读取Excel
在.NET中可以用OleDb(Object linking and embeding DataBase)来访问Excel
using System;
using System.Data;
using System.Windows.Forms;
using System.Data.OleDb; namespace ExcelDemo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void button1_Click(object sender, EventArgs e)
{
//xls为Excel2003-2007版本的Excel文件后缀,而xlsx为2007以上版本的后缀名
//var dt = ExcelToDataTable(@"E:\WorkSpace\VS\ExcelDemo\test.xls", "sheet1");
var dt = ExcelToDataTable(@"E:\WorkSpace\VS\ExcelDemo\test.xlsx", "sheet1");
this.dataGridView1.DataSource=dt;
}
private DataTable ExcelToDataTable(string strExcelFileName, string strSheetName)
{
//Jet和Ace都是连接Excel对象的接口引擎,但是二者有区别.
//string strConn = "Provider=Microsoft.Jet.OLEDB.8.0;" + "Data Source=" + strExcelFileName + ";" +
//"Extended Properties='Excel 8.0;HDR=Yes;IMEX=1';";
string strConn = @"Provider=Microsoft.Ace.OLEDB.12.0;" + "Data Source=" + strExcelFileName + ";" +
"Extended Properties='Excel 12.0;HDR=Yes;IMEX=1';";
string strExcel = string.Format("select * from [{0}$]", strSheetName);
//创建OleDb连接,对于特定的数据源类型,传入不同的连接字符串
OleDbConnection connection = new OleDbConnection(strConn);
connection.Open();
OleDbDataAdapter da = new OleDbDataAdapter(strExcel,connection);
var ds = new DataSet();
da.Fill(ds,strSheetName);
return ds.Tables[strSheetName];
}
}
}
最开始用的Excel对象接口引擎为Jet,但是在测试时发现对于Excel2013版本的文件,在执行到31行时会报错"外部表不是标准格式".将Excel另存为2003-2007版本时不报错.
原来Jet引擎和Ace引擎是有区别的,具体参考 http://blog.csdn.net/xifeijian/article/details/8333396
.NET中使用OleDb读取Excel的更多相关文章
- 使用OLEDB读取excel和csv文件
这是我第一次在博客上写东西,简单的为大家分享一个oledb读取文件的功能吧,这两天在做一个文件导入数据库的小demo,就想着导入前先在页面上展示一下,之前调用Microsoft.Office.Inte ...
- 如何在C#中打开和读取EXCEL文件
这篇文章向您展示如何在C#Windows Forms Application中使用ExcelDataReader,ExcelDataReader.DataSet打开和读取Excel文件.创建一个新的W ...
- OLEDB读取EXCEL表格时,某些字段为空,怎么办?
转载:http://blog.sina.com.cn/s/blog_53864cba01011cbn.html 前些日子,写了一个Excel导入数据库的共同Batch,突然有一天发现当我修改Exc ...
- java中使用jxl读取excel中的数据
package bboss; import java.io.File; import java.io.FileInputStream; import java.io.IOException; impo ...
- 用OLEDB读取EXCEL时,单元格内容长度超过255被截断
https://support.microsoft.com/zh-cn/help/189897/data-truncated-to-255-characters-with-excel-odbc-dri ...
- 【C#】采用OleDB读取Excel文件转DataTable
using System; using System.Data; using System.Data.OleDb; using System.IO; using System.Linq; using ...
- ADO.NET(OleDb)读取Excel表格时的一个BUG
如果我们有例如以下一个Excel表格: 如今要使用C#程序读取其内容: using System; using System.Data.OleDb; namespace Skyiv.Be ...
- C# - 使用 OLEDB读取 excel(不用Excel对象).
参考: How to read from an Excel file using OLEDB 为了使用方便,我做成了工具类(OledbCommon.cs),好以后使用. 注:连接字符串中,Provid ...
- 使用oledb读取excel表
string path = "C:\\Users\\aaa\\Desktop\\aa.xls"; string conn = "Provider = Microsoft. ...
随机推荐
- 20145103JAVA第一次实验报告
20145103<Java程序设计>第一次实验报告 实验内容及其步骤 一.命令行下java程序开发 建立一个java文件,然后在命令行中,对程序进行javac编译,就生成了.class文件 ...
- mongodb修改器
mongodb修改器 转载自:http://blog.csdn.net/mcpang/article/details/7752736 mongodb修改器(\(inc/\)set/\(unset/\) ...
- 阴影 box-shadow(一)
阴影 box-shadow(一) box-shadow是向盒子添加阴影.支持添加一个或者多个. 很简单的一段代码,就实现了投影效果,酷毙了.我们来看下语法: box-shadow: X轴偏移量 Y轴偏 ...
- 配置Symfony2
安装成功后打开server php app/console server:run 127.0.0.1:8000 然后在浏览器输入localhost/8000/config.php进行配置 1.date ...
- SQL Server性能优化(5)表设计时的注意事项
一. 是否需要冗余列 现在一些项目的数据库设计中,为了提高查询速度,把基本表的一些列也放到了数据表里,导致数据冗余.例如在热表的数据库里,原始数据表Measure_Heat里加了如房间号,单元号,楼号 ...
- Upgrading to Java 8——第一章 Lambda表达式
第一章 Lambda表达式 Lamada 表达式是Java SE 8中最重要的新特性,长期以来被认为是在Java中缺失的特性,它的出现使整个java 语言变得完整.至少到目前,在这节中你将学习到什么是 ...
- TEST ON 平安夜
1.前言 = = 感觉自己其实没发过关于考试的博客过... 今天是一个平安的夜晚,漆黑的夜被霓虹划分成网络,很适合发题. 2.num9九数码问题 传统8数码改一下...只询问一个状态,所以很容易搞,正 ...
- POI中设置Excel单元格格式
引用:http://apps.hi.baidu.com/share/detail/17249059 POI中可能会用到一些需要设置EXCEL单元格格式的操作小结: 先获取工作薄对象: HSSFWork ...
- eclipse 自动 注释
在使用Eclipse 编写Java代码时,自动生成的注释信息都是按照预先设置好的格式生成的. 修改作者.日期注释格式:打开Windows->Preferences->Java->Co ...
- java输出流实现文件下载
//导出Excel try { HSSFWorkbook wb = carService.export(list); //调用service方法~! response.setContentType(& ...