.net 打开Excel文档并转为DataTable


        /// <summary>
/// 打开Excel文档并转为DataTable
/// </summary>
/// <returns></returns>
public static DataTable ExcelWorksheetToDataTable()
{
DataTable dtExecl = new DataTable();
double Ver = GetExcelVer();
if (Ver <= 0)
{
MessageBox.Show("The computer does not have Excel installed.", "prompt");
return null;
}
string ExcelFile = "";
OpenFileDialog ofd = new OpenFileDialog();
if (ofd.ShowDialog() == DialogResult.OK)
{
OleDbConnection conn = null;
ExcelFile = ofd.FileName;
if (ExcelFile.Length > 0)
{
try
{
string StrConn = "Provider={0};" + "Data Source=" + ExcelFile + ";" + "Extended Properties=‘Excel {1};HDR=YES; IMEX=1‘";
if ((new System.IO.FileInfo(ExcelFile).Extension).ToLower() == ".xlsx")
{
StrConn = string.Format(StrConn, "Microsoft.ACE.OLEDB.12.0", "12.0");
}
else
{
StrConn = string.Format(StrConn, "Microsoft.Jet.OLEDB.4.0", "8.0");
}

conn = new OleDbConnection(StrConn);
DataSet ds = new DataSet();
conn.Open();
OleDbDataAdapter myCommand = null;
myCommand = new OleDbDataAdapter("select * from [sheet1$]", StrConn);
myCommand.Fill(ds, "sheet1");
if (ds != null && ds.Tables.Count > 0)
{
dtExecl = ds.Tables[0];
if (!dtExecl.Columns.Contains("IntAUID"))
{
dtExecl.Columns.Add("IntAUID", typeof(int));
}
int i = 1;
foreach (DataRow dr in dtExecl.Rows)
{
dr["IntAUID"] = i;
i += 1;
}
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return null;
}
finally
{
conn.Close();
conn.Dispose();
}
}
}
return dtExecl;
}

Code by 博客园-曹永思


        /// <summary>
/// 获取当前计算机安装Excel版本号
/// </summary>
/// <returns></returns>
private static double GetExcelVer()
{
Type objExcelType = Type.GetTypeFromProgID("Excel.Application");
if (objExcelType == null)
{
return 0;
}
object objApp = Activator.CreateInstance(objExcelType);
if (objApp == null)
{
return 0;
}
object objVer = objApp.GetType().InvokeMember("Version", BindingFlags.GetProperty, null, objApp, null);
double Ver = Convert.ToDouble(objVer.ToString());
return Ver;
}

时间: 2024-11-08 07:28:09

.net 打开Excel文档并转为DataTable的相关文章

EXCEL基础内容学习笔记(二)Excel文档的基本组成与功能介绍

一.基本组成 (一)工作簿.工作表与单元格 (1)工作簿:一个Excel文档即为一个工作簿. (2)工作表:工作簿中的每个表. (3)单元格:打开Excel文档,在工作表中单击,出现的加粗四边形即为单元格.单元格由行和列组成,命名时由行和列说明,称为单元格名称或地址. 一个工作簿中有若干个工作表,每个工作表有许多单元格组成. 二.功能介绍 (1)标题栏:Excel文档最上端. (2)选项卡 (3)工作区:每一个打开的选项卡都含有若干工作区. (4)名称框:所选择的单元格的名字. (5)编辑栏:可

C#操作Excel(2)-- 打开-读取Excel文档

由于要为某软件实现导出Excel功能,故有此文. 本文的开发环境是Visual Studio 2010 ,C#, Excel 2007. 新建C#工程后打开Solution Explorer,可以看到如下图片: 右键点击Reference->Add References->Browse 选择三个DLL文件(点此下载): Interop.Excel.dll Interop.Microsoft.Office.Core.dll Interop.VBIDE.dll 添加上述三个引用后,Referenc

桌面支持--WIN7任务栏上EXCEL的图标右键菜单上没有了最近打开的文档目录

WIN7任务栏上EXCEL的图标右键菜单上没有了最近打开的文档目录 解决办法: 删除以下文件夹内的所有文件,并重启,然后将要固定的文件夹重新拖到任务栏"附到windows资源管理器"即可 %APPDATA%\Microsoft\Windows\Recent\AutomaticDestinations    "最近" %APPDATA%\Microsoft\Windows\Recent\CustomDestinations        "已固定"

【转】ExcelHelper类,用npoi读取Excel文档

//------------------------------------------------------------------------------------- // All Rights Reserved , Copyright (C) 2013 , DZD , Ltd . //------------------------------------------------------------------------------------- using System; us

ASP.NET 导入EXCEl文档

鉴于教务一般都是手动输入学生信息,在未了解本校数据库的客观情况之下,我们准备设计一个导入excel文档中学生信息如数据库的功能.结合网上各类大牛的综合版本出炉.. 首先具体的实现思想如下: 1.先使用FileUpload控件fuload将Excel文件上传到服务器上得某一个文件夹. 2.使用OleDb将已经上传到服务器上的Excel文件读出来,这里将Excel文件当做一个数据库来读.在联系数据库语句中,Data Source就是该文件在服务器上得物理路径 3.将第二步中读出的数据以DataTab

支持将数据导出到Excel文档的时候设置单元格格式的.NET控件Spire.DataExport

Spire.DataExport for .NET是e-iceblue公司推出的一款数据导出类.NET控件.作为一款专业的数据导出控件,Spire.DataExport for .NET可以帮助开发人员轻松快速的从各种主流数据库中导出数据并存储于各种文件格式中.他支持从SQL Command, DataTable,ListView中导出数据并存储于MS Excel,MS Word, HTML, XML, PDF, MS Access, DBF, SQL Script, SYLK, DIF, CS

Excel文档间的数据替换 ---电脑版APP 自动操作魔法师

http://www.won-soft.com/macro/solution/excel-data-replace.htm 介绍: 在我们的日常工作中, 可能经常需要使用同各种数据表格打交道.比如财务工作中各种数据表格, 生产管理上的各种生产数据统计表,以前人力资源部的工资表等等.在处理这些数据的过程中, 我们可能经常会遇到要做一张表,但这张表的数据需要从另一张表上取,每个数据间有一些相关联的规则,举例来说: 年底一般都会做工资统计表,列出所有员工的全年的各种奖金总计.全年应发工资.实发工资.扣

mac OS X:将CSV格式转换为Excel文档格式

一:在Mac上如果你使用Excel打开windows导出的CSV格式文档,你会发现表格中所有的的内容都显示在A列.那么,如何恢复正常呢,你可以将CSV格式的文档导入到Excel文档中,这样就正常显示了. 1. 2. 3. 4. 5. 6. 7. 8. 9. 二:中文乱码解决方法 使用 Numbers软件打开文档,然后 ps: 其实可以不用Excel的,直接使用Numbers就足够了,编辑和导出. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Python处理Excel文档(xlrd, xlwt, xlutils)

简介 xlrd,xlwt和xlutils是用Python处理Excel文档(*.xls)的高效率工具.其中,xlrd只能读取xls,xlwt只能新建xls(不可以修改),xlutils能将xlrd.Book转为xlwt.Workbook,从而得以在现有xls的基础上修改数据,并创建一个新的xls,实现修改. (以下属性或方法并非全部,需要更多属性请参看文档:建议先参考文末Demo,再深入了解) xlrd Book(class) 由xlrd.open_work("example.xls"