资源简介
用C#开发的一个读取Excel表格的Demo,无需安装office。
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.OleDb;
using System.Data;
using System.IO;
namespace TestExcel
{
class Program
{
static void Main(string[] args)
{
string mExcelName = “D:\\hehehe.xlsx“;
string mExcelSheet = ““;
DataTable mDataTable = ExcelToDataTable(mExcelName mExcelSheet);
for (int i = 0; i < mDataTable.Rows.Count; i++)
{
for (int j = 0; j < mDataTable.Columns.Count; j++)
{
Console.Write(mDataTable.Rows[i][j].ToString() + “ “);
}
Console.WriteLine(““);
}
Console.ReadLine();
}
//用OLEDB通过设置连接字符串可以像读取sqlserver一样将excel中的数据读取出来,但是excel2003和excel2007/2010的连接字符串是不同的
///
/// 把数据从Excel装载到DataTable
///
/// 带路径的Excel文件名
/// 工作表名
/// 将数据存入的DataTable
///
public static DataTable ExcelToDataTable(string pathName string sheetName)
{
DataTable tbContainer = new DataTable();
string strConn = string.Empty;
if (string.IsNullOrEmpty(sheetName)) { sheetName = “Sheet1“; }
FileInfo file = new FileInfo(pathName);
if (!file.Exists) { throw new Exception(“文件不存在“); }
string extension = file.Extension;
switch (extension)
{
case “.xls“:
strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ + pathName + “;Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1;‘“;
break;
case “.xlsx“:
strConn = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=“ + pathName + “;Extended Properties=‘Excel 12.0;HDR=Yes;IMEX=1;‘“;
break;
default:
strConn = “Provider=Microsoft.Jet.OLEDB.4.0;Data Source=“ + pathName + “;Extended Properties=‘Excel 8.0;HDR=Yes;IMEX=1;‘“;
break;
}
//链接Excel
OleDbConnection cnnxls = new OleDbConnection(strConn);
//读取Excel里面有 表Sheet1
OleDbDataAdapter oda = new OleDbDataAdapter(string.Format(“select * from [{0}$]“ sheetName) cnnxls);
DataSet ds = new DataSet();
//将Excel里面有表内容装载到内存表中!
oda.Fill(tbContainer);
return tbContainer;
}
//这里需要注意的地方是,当文件的后缀名为.xlsx(excel2007/2010)时的连接字符串是“Provider=Microsoft.ACE.OLEDB.12.0;....“,注意中间红色部分不是“Jet“。
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 6144 2014-10-09 16:56 TestExcel\TestExcel\bin\Debug\TestExcel.exe
文件 13824 2014-10-09 16:56 TestExcel\TestExcel\bin\Debug\TestExcel.pdb
文件 11608 2014-10-10 11:28 TestExcel\TestExcel\bin\Debug\TestExcel.vshost.exe
文件 490 2010-03-17 22:39 TestExcel\TestExcel\bin\Debug\TestExcel.vshost.exe.manifest
文件 5798 2014-10-09 16:56 TestExcel\TestExcel\obj\x86\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 374 2014-10-10 11:28 TestExcel\TestExcel\obj\x86\Debug\TestExcel.csproj.FileListAbsolute.txt
文件 6144 2014-10-09 16:56 TestExcel\TestExcel\obj\x86\Debug\TestExcel.exe
文件 13824 2014-10-09 16:56 TestExcel\TestExcel\obj\x86\Debug\TestExcel.pdb
文件 3007 2014-10-09 16:56 TestExcel\TestExcel\Program.cs
文件 1350 2014-10-09 16:18 TestExcel\TestExcel\Properties\AssemblyInfo.cs
文件 2332 2014-10-09 16:18 TestExcel\TestExcel\TestExcel.csproj
文件 869 2014-10-09 16:18 TestExcel\TestExcel.sln
..A..H. 58880 2014-10-10 11:41 TestExcel\TestExcel.suo
目录 0 2014-10-09 16:18 TestExcel\TestExcel\obj\x86\Debug\TempPE
目录 0 2015-01-27 12:32 TestExcel\TestExcel\obj\x86\Debug
目录 0 2015-01-27 12:32 TestExcel\TestExcel\bin\Debug
目录 0 2015-01-27 12:32 TestExcel\TestExcel\obj\x86
目录 0 2015-01-27 12:32 TestExcel\TestExcel\bin
目录 0 2015-01-27 12:32 TestExcel\TestExcel\obj
目录 0 2015-01-27 12:32 TestExcel\TestExcel\Properties
目录 0 2015-01-27 12:32 TestExcel\TestExcel
目录 0 2015-01-27 12:32 TestExcel
----------- --------- ---------- ----- ----
124644 22
相关资源
- Winform 画多边形
- 中兴华为C#编码规范
- C# winform Socket 即时通讯
- C#textbox下拉提示 textbox智能提示 te
- C#连接oracle数据库增删改查
- 基于GPRS的远程通讯C#程序SOCKET部分带
- C# winform 单击与双击事件同时存在
- c#+vs2005的局域网抢答器
- 留言板C# 窗口版和网页版
- C#:ARGB与16进制颜色显示与转换
- c#调用winapi实现WinForm中嵌入EXE程序
- otsu阈值分割c#语言
- C#和PLC利用modbus通信
- 百度翻译API,C#接口。
- 我写的TreeGrid源代码 TreeGrid 网格树录
- C#软键盘支持中英文输入
- BarScan条形码扫描源码c#
- 使用C#.NET实现FTP文件
- C# winform 朗读输入文本
- 电子邮件email收取客户端程序,C#源代
- HIKVISION工业相机通过Halcon二次开发的
- 用C#编程调用Visio的COM接口,获取Vis
- C#打印--打印商品出库单(亲测可用)
- C#实现滚动字幕完整源码(亲测可用)
- C# SqlHelper类
- 测绘编程技术——C#控制点展绘
- C#实现计算器
- C# 实现RDP远程桌面连接配套项目源码
- winform登陆界面展示
- C#TabControl控件实现窗体的整合与切换
评论
共有 条评论