asp.net 导入 Excel 2007

本文提供了一个使用C#从Excel 2003文件中读取数据并将其转换为DataTable的示例代码。该方法首先创建一个Excel的连接字符串,然后通过OleDbConnection连接到Excel文件,并获取第一个工作表的数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、安装Excel2007 或者 下载2007的插件 http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe

二、导入代码

01protected DataTable ExcelHelper(string filePaht)
02        {
03            string sFilePath2003 = Server.MapPath("ExcelData/2003.xls");
04            //string sFilePath2007 = Server.MapPath("ExcelData/2007.xlsx");
05              
06            // 支持Excel2003 和 Excel2007 的连接字符串
07            // "HDR=yes;"是说第一行是列名而不是数据,"HDR=No;"正好与前面的相反。 
08            // 如果列中的数据类型不一致,使用"IMEX=1"可必免数据类型冲突。
09            string sConn = "provider=Microsoft.ACE.OleDb.12.0; Data Source ='" + sFilePath2003 + "';Extended Properties='Excel 12.0;HDR=yes;IMEX=1';";
10            if (string.IsNullOrEmpty(sConn)) {  return null ; }
11  
12            DataTable dtExcel = new DataTable();
13            using (OleDbConnection conn = new OleDbConnection(sConn))
14            {
15                conn.Open();
16                // 获取Excel的第一个SheetName
17                string sSheetName = "";
18                DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "Table" });
19                if (dtSheet.Rows.Count > 0)
20                    sSheetName = dtSheet.Rows[0]["Table_Name"].ToString();
21                else
22                    return null;
23                // 获取Excel数据
24                string sSql = string.Format("select * from [{0}]", sSheetName);
25                OleDbDataAdapter adapter = new OleDbDataAdapter(sSql, conn);
26                adapter.Fill(dtExcel);
27                conn.Close();
28            }
29  
30            return dtExcel;
31        }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值