ASP.NET中如何将Excel表中的数据导入到数据库中?

ASP.NET中如何将Excel表中的数据导入到数据库中?,第1张

ASP.NET中将Excel表中的数据导入到数据库中的方法是利用可视化界面工具直接选择字段映射导入。

1)接受数据导入的表已经存在。

insert into t1 select * from OPENROWSET('MICROSOFT.JET.OLEDB.4.0' ,

'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

2)导入数据并生成表。

select * into t1 from OPENROWSET('MICROSOFT.JET.OLEDB.4.0',

'Excel 5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

3) 导入Excel中指定的列到数据库表中指定的列。

INSERT INTO t1(a1,a2,a3) SELECT a1,a2,a3 FROM OPENROWSET'MICROSOFT.JET.OLEDB.4.0' ,'Excel5.0HDR=YESDATABASE=c:\\test.xls',sheet1$)

需要注意的地方。

1)外围应用配置器的设置。

从“功能外围应用配置器”中选择“启动 OPENROWSET 和 OPENDATASOURCE 支持”选项。

2)关闭Excel表。

如果在导入时要导入的Excel表格处于打开状态,会提示:

“无法初始化链接服务器 "(null)" 的 OLE DB 访问接口 "microsoft.jet.oledb.4.0" 的数据源对象。”

3)导入数据时,Excel的首行会作为表头,若导入到已存在的数据库表,则忽略首行。

你是说给每个表写个映射类很累人?

那就用语句查出之后DataTable之后直接转json

       /// <summary>

        /// 将datatable转换为json

        /// </summary>

        /// <param name="dt">Dt</param>

        /// <returns>JSON字符串</returns>

        public static string DataTableToJson(DataTable dt)

        {

            JavaScriptSerializer js = new JavaScriptSerializer()

            System.Collections.ArrayList list = new System.Collections.ArrayList()

            foreach (DataRow dr in dt.Rows)

            {

                System.Collections.Generic.Dictionary<string, object> drow = new System.Collections.Generic.Dictionary<string, object>()

                foreach (DataColumn dc in dt.Columns)

                {

                    drow.Add(dc.ColumnName, dr[dc.ColumnName])

                }

                list.Add(drow)

            }

            //序列化  

            return js.Serialize(list)

        }


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9899552.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存