代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
Asp.NET
】
DataTable导出到Excel
作者:
炎烯
/ 发布于
2016/8/25
/
689
/// <summary> /// 获取指定路径、指定工作簿名称的Excel数据:取第一个sheet的数据 /// </summary> /// <param name="FilePath">文件存储路径</param> /// <param name="WorkSheetName">工作簿名称</param> /// <returns>如果争取找到了数据会返回一个完整的Table,否则返回异常</returns> public DataTable GetExcelData(string astrFileName) { string strSheetName = GetExcelWorkSheets(astrFileName)[0].ToString(); return GetExcelData(astrFileName, strSheetName); } /// <summary> /// 返回指定文件所包含的工作簿列表;如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否则返回空 /// </summary> /// <param name="strFilePath">要获取的Excel</param> /// <returns>如果有WorkSheet,就返回以工作簿名字命名的ArrayList,否则返回空</returns> public ArrayList GetExcelWorkSheets(string strFilePath) { ArrayList alTables = new ArrayList(); OleDbConnection odn = new OleDbConnection(GetExcelConnection(strFilePath)); odn.Open(); DataTable dt = new DataTable(); dt = odn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); if (dt == null) { throw new Exception("无法获取指定Excel的架构。"); } foreach (DataRow dr in dt.Rows) { string tempName = dr["Table_Name"].ToString(); int iDolarIndex = tempName.IndexOf('$'); if (iDolarIndex > 0) { tempName = tempName.Substring(0, iDolarIndex); } //修正了Excel2003中某些工作薄名称为汉字的表无法正确识别的BUG。 if (tempName[0] == '\'') { if (tempName[tempName.Length - 1] == '\'') { tempName = tempName.Substring(1, tempName.Length - 2); } else { tempName = tempName.Substring(1, tempName.Length - 1); } } if (!alTables.Contains(tempName)) { alTables.Add(tempName); } } odn.Close(); if (alTables.Count == 0) { return null; } return alTables; } /// <summary> /// 获取指定路径、指定工作簿名称的Excel数据 /// </summary> /// <param name="FilePath">文件存储路径</param> /// <param name="WorkSheetName">工作簿名称</param> /// <returns>如果争取找到了数据会返回一个完整的Table,否则返回异常</returns> public DataTable GetExcelData(string FilePath, string WorkSheetName) { DataTable dtExcel = new DataTable(); OleDbConnection con = new OleDbConnection(GetExcelConnection(FilePath)); OleDbDataAdapter adapter = new OleDbDataAdapter("Select * from [" + WorkSheetName + "$]", con); //读取 con.Open(); adapter.FillSchema(dtExcel, SchemaType.Mapped); adapter.Fill(dtExcel); con.Close(); dtExcel.TableName = WorkSheetName; //返回 return dtExcel; } /// <summary> /// 获取链接字符串 /// </summary> /// <param name="strFilePath"></param> /// <returns></returns> public string GetExcelConnection(string strFilePath) { if (!File.Exists(strFilePath)) { throw new Exception("指定的Excel文件不存在!"); } return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strFilePath + ";Extended properties=\"Excel 8.0;Imex=1;HDR=Yes;\""; //@"Provider=Microsoft.Jet.OLEDB.4.0;" + //@"Data Source=" + strFilePath + ";" + //@"Extended Properties=" + Convert.ToChar(34).ToString() + //@"Excel 8.0;" + "Imex=1;HDR=Yes;" + Convert.ToChar(34).ToString(); }
试试其它关键字
同语言下
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
可能有用的
.
gzip压缩
.
实现http多线程断点续传下载文件
.
实现多线程断点续传下载大文件
.
生成字符串的 CheckSum
.
根据 UserAgent 获取浏览器的类型和版本
.
根据 Agent 判断是否是智能手机
.
隐藏手机号中间四位为*方法
.
合并图片(二维码和其他图片合并)
.
ASP.NET CORE中判断是否移动端打开网页
.
ASP.NET(C#)实现页面计时(定时)自动跳转
炎烯
贡献的其它代码
(
15
)
.
java实现String的split方法
.
导出重复的数据
.
获取当前类类名、方法名
.
复制文本
.
微信扫描二维码登录
.
DataTable导出到Excel
.
使用 Hpricot 进行 HTML 文档解析
.
使用 Hpricot 进行 HTML 文档解析
.
判断客户端是IOS还是Android
.
获取图片的主色调
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3