web winform导入excel 支持2003 2007

      private void btnImportExcel_Click(object sender, EventArgs e)

        {
          
            SqlConnection conn = new SqlConnection();

            try
            {
                OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框。

                if (openFile.ShowDialog() == DialogResult.OK)
                {

                    string connStr = null;
                    string filename = openFile.FileName;
                    int index = filename.LastIndexOf("\\");//截取文件的名字
                    filename = filename.Substring(index + 1);
                    int suffix_index = filename.LastIndexOf(".");
                    string suffixName = filename.Substring(suffix_index + 1);
                    //hdr=no(第一行是不是标题,作为数据来使用,这样excel可以读取汉字或者格式混乱的内容)
                    if (suffixName == "xls")
                    {
                        connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"
                            //+ "Extended Properties=Excel 8.0;"
                            + "Extended Properties=\"Excel 8.0;HDR=NO;IMEX=1;\";"
                            + "Data Source=" + filename;
                    }
                    else if (suffixName == "xlsx")
                    {
                        connStr = "Provider=Microsoft.ACE.OLEDB.12.0;"
                           + "Extended Properties=\"Excel 12.0;HDR=NO;IMEX=1;\";"
                           + "Data Source=" + filename;
                    }
                    else
                    {
                        MessageBox.Show("格式错误");
                        return;
                    }


                    OleDbConnection objConn = null;
                    objConn = new OleDbConnection(connStr);
                    objConn.Open();

                    // Get the first sheet name.
                    DataTable dt = objConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

                    string sheetName = "";
                    if (dt != null && dt.Rows.Count > 0)
                    {
                        sheetName = dt.Rows[0]["TABLE_NAME"].ToString();
                    }
                    else
                    {
                        MessageBox.Show("数据为空");
                        return;
                    }

                    // Get the data from the first sheet.
                    string sql = string.Format("SELECT * FROM [{0}]", sheetName);

                    DataSet ds = new DataSet();
                    OleDbDataAdapter da = new OleDbDataAdapter(sql, objConn);
                    da.Fill(ds);
                    DataTable dataTable = ds.Tables[0];
                    int coluNum = dataTable.Columns.Count;
                    int rowNum = dataTable.Rows.Count;
                    bool firstrow_flag = true;

                    string mysql = null;


                    foreach (DataRow row in dataTable.Rows)
                    {

                        bool insertbuilding_flag = true;
                        if (firstrow_flag)
                        {
                            firstrow_flag = false;
                            continue;
                        }

                        Guid gid = Guid.NewGuid();

                        string buildingname = row[6].ToString() + "栋" + row[7].ToString() + "单元";

                        for (int i = 9; i < coluNum; i++)
                        {
                            conn = DBConnection.DBOpen();
                            SqlTransaction tran = conn.BeginTransaction();

                            try
                            {
                                if (insertbuilding_flag)
                                {
                                    insertbuilding_flag = false;
                                    if (!string.IsNullOrEmpty(buildingname))
                                    {
                                        string sql_insertBuilding = "insert into dbo.building(buildingID,building_name) values('" + gid + "','" + buildingname + "');";
                                        mysql += sql_insertBuilding;
                                    }
                                    if (!string.IsNullOrEmpty(row[i].ToString()))
                                    {
                                        string sql_insertRoom = "insert into dbo.Room(roomID,buildingID,room_name) values('" + Guid.NewGuid() + "','" + gid + "','" + row[i].ToString() + "');";
                                        mysql += sql_insertRoom;
                                    }


                                }
                                else
                                {
                                    if (!string.IsNullOrEmpty(row[i].ToString()))
                                    {
                                        string sql_insertRoom = "insert into dbo.Room(roomID,buildingID,room_name) values('" + Guid.NewGuid() + "','" + gid + "','" + row[i].ToString() + "');";
                                        mysql = sql_insertRoom;
                                    }

 

                                }

                                if (!string.IsNullOrEmpty(mysql))
                                {

                                    SqlCommand cmd = new SqlCommand(mysql, conn);
                                    cmd.Transaction = tran;
                                    cmd.ExecuteNonQuery();
                                    tran.Commit();
                                    mysql = null;
                                }

                            }
                            catch
                            {
                                tran.Rollback();

                            }
                            finally
                            {
                                conn.Close();
                            }
                        }

                    }

 

                    MessageBox.Show("操作成功");
                    openFileDialog1.Dispose();

                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());

            }
            finally
            {
                if (conn.State == ConnectionState.Open)
                {
                    conn.Close();
                }
            }


        }

SAP采购申请审批策略配置简介 SAP采购申请审批策略配置简介 1、CT04创建特征 阅读详情

相关推荐

信号完整性仿真SI之Cadence Sigrity SPEED2000_眼图仿真(四)

今天给大家分享一个仿真的操作流程,是关于Cadence Sigrity SPEED2000的时域波形仿真和眼图仿真。我们会经常看见硬件工程师调试示波器上的一些信号的波形变化,其实这些也可以通过仿真电路的搭建来做出投板前的仿真,来优化走线,以减少版本的迭代次数。如果要和实际的信号保持一致,就要求仿真设置的参数和实际的参数保持一致,这也是仿真的重点和难点。下面先让我们了解一下Cadence Sigrity SPEED2000时域仿真的操作流程: 1.仿真模式选择与文件导入 选择Cadence Sigrity下的

刘小同学的博客 1万+

新手小白用C# winform 读取Excel表

一、界面部分:首先,打开visual studio新建项目;然后使用“工具箱”添加控件:分别添加button,datagridview,textbox三种窗体;所得到的界面图如图所示:(多加了几个文本框)二、代码部分:1、添加命名空间:using System.Data.OleDb; //命名空间2、添加类: //根据excle的路径把第一个sheel中的内容放入datatable ...

qiongyugaohan的博客 3万+

保姆级教程:手把手教你从NASA Earthdata下载ASTER L2地表温度数据(附shp文件拖拽技巧)

本文提供了一份详细的NASA Earthdata平台ASTER L2地表温度数据下载教程,涵盖账号注册、数据筛选、shp文件拖拽技巧及质量检查等关键步骤。特别适合遥感领域初学者,帮助快速掌握高效获取ASTER L2T数据的方法,适用于城市热岛效应和农业监测等研究。

weixin_30736301的博客 470

使用EsayExcel 实现 web上传excel文件(读取excel文件)

使用EsayExcel 实现 web上传excel文件(读取excel文件) 1.创建项目、添加依赖 <!-- 官方文档 https://www.yuque.com/easyexcel/doc/read#1bfaf593 --> <dependency> <groupId>com.alibaba</groupI...

小灰灰的博客 1066

别再只调电压了!深入理解数控电源的CC/CV模式与双闭环PID控制(以BUCK电路为例)

本文深入解析数控电源的CC/CV模式与双闭环PID控制技术,以BUCK电路为例,探讨如何通过双闭环控制优化负载突变响应和模式切换稳定性。文章详细介绍了电压环与电流环的协同工作原理、PID参数整定技巧及工程实践中的非线性补偿方法,帮助工程师提升电源设计的智能控制能力。

weixin_27017211的博客 265

用Python写个彩票小助手:自动生成双色球/大乐透号码并保存到桌面

本文介绍如何使用Python开发一个智能彩票助手,实现双色球和大乐透号码的随机生成与桌面文件保存功能。通过详细的代码示例,包括随机号码生成、文件操作、用户交互和错误处理,帮助Python初学者快速掌握实用工具开发技巧。

weixin_42566121的博客 521

详细webMVC实现提交excel后台并读取数据

使用MVC上传EXCEL表格,主要是用到MultipartFile类进行文件的获取,然后把文件读取成EXCEL对象再进行处理,Java有处理Excel对象的包,需要导入才能使用,具体的步骤转载自 南国樱花祭的文章 这是我看的文章,基本复制他的代码,如果要看配置上传文件的大小限制的可以点进去看看maven项目的要先添加pom依赖,不是maven的也要添加jar包,可以自行上网下载&lt;!-- 处理...

YangJiaJun0506的博客 2753

deepstream车道线检测自定义插件化,其中要注意pipeline的配置,如果插件位置配置不对,会报input format should be RGBA when using blur-obje

以上代码中,我们先从对象池中获取一个 DsUserMeta 对象,然后使用 get_lane_line_from_frame 函数获取车道线检测结果,并使用 add_lane_line_meta 函数将其添加到 DsUserMeta 对象中。注意,上述代码中的 get_lane_line_from_frame 函数和 add_lane_line_meta 函数需要你自己实现,用于从视频帧中提取车道线检测结果,并将其添加到 DsUserMeta 中。

pvmsmfchcs的博客 690

Excel文件导入导出 -- NPOI

Excel导入导出帮助类 此帮助类使用了NPOI第三方控件的方式实现了Excel的导入导出,MVC可直接使用,WinForm或WPF使用需引用System.Web程序集 using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using...

weixin_43343835的博客 398

ADS基础教程24 - Gerber文件的导入

一、引言二、基本概念1.仿真文件下载2.仿真文件介绍二、导入步骤1.新建workspace2.选择Layout结构3.导入设计4.选择文件类型5.导入文件6.预览文件内容7.铜皮离散问题四、总结选择。通过本文章结束,可以了解ADS中如何将导入Gerber文件,并且对导入的铜皮进行合并。下一步就针对导入的文件进行层叠设置和编辑。END!}}END!

XZ_ZC的博客 3057

【忍者算法】从拼积木到最长连续序列:一道别出心裁的数组题目|LeetCode 128 最长连续序列

本题核心:通过预处理数据结构来优化查找!

忍者算法的博客 738

WinForm数据导出性能优化:从原生Excel组件到NPOI的深度实践

前些日子做了一个简单的winform程序,需要导出的功能,刚开始省事直接使用微软的组件,但是导出之后发现效率极其低下,绝对像web那样使用npoi组件,因此简单的进行了整理,包括直接根据DataTable导出excel及DataGridview导出excel,版本是1.2.4,下面贴下主要代码两种方式,1、NPOI导出excel、 2、普通的导出excel下面贴下主要代码:NPOI导出/// <su

德仔 3325

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之OS模块配置详解(中)

RH850从0搭建Autosar开发环境【3X】- Davinci Configurator之OS模块配置详解(中)

weixin_42412049的博客 1516

NPOI导入导出EXCEL通用类,供参考,可直接使用在WinForm项目中

以下是NPOI导入导出EXCEL通用类,是在别人的代码上进行优化的,兼容xls与xlsx文件格式,供参考,可直接使用在WinForm项目中,由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案,大家如果有知道的还请告之,谢谢! 注意:若直接使用在WinForm项目中,必需先下载并在项目中引用NPOI2...

weixin_33807284的博客 195

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Office2007 嵌入WINFORM的方法

Microsoft Developer Support Office Framer Control 1.3 Sample  OverviewThe Microsoft Developer Support Office Framer Control 1.3 Sample is a Visual C++ control sample, provided for developers wor

火山赵哥的专栏 2849

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

NPOI导入导出EXCEL通用类,可直接使用在WinForm项目中

由于XSSFWorkbook类型的Write方法限制,Write完成后就自动关闭流数据,所以无法很好的支持的Web模式,网上目前也未找到好的解决方案。 注意:若直接使用在WinForm项目中,必需先下载并在项目中引用NPOI2.0或以上版本的组件才可以正常使用。 using System; using System.Collections.Generic; using System.L...

weixin_30750335的博客 117

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Npoi导入导出Excel操作

之前公司的一个物流商系统需要实现对订单的批量导入和导出,翻阅了一些资料,最后考虑使用NPOI实现这个需求。 在winform上面实现excel操作:http://www.cnblogs.com/CallmeYhz/p/4920293.html,NPOI的主页:http://npoi.codeplex.com/ 简介 NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Exc...

weixin_33929309的博客 344

ActiveX控件dsoFramer的使用(word、excel、PPT)

dsoframer是微软提供一款开源的用于在线编辑、调用Word、 Excel 、PowerPoint等的ActiveX控件。国内很多著名的OA中间件,电子印章,签名留痕等大多数是依此改进而来的。

了解—学习—进步—满足 3449

【推荐】.NET使用NPOI组件将数据导出Excel

1、NPOI官方网站:http://npoi.codeplex.com/    可以到此网站上去下载最新的NPOI组件版本 2、NPOI在线学习教程(中文版):     http://www.cnblogs.com/tonyqus/archive/2009/04/12/1434209.html    感谢Tony Qu分享出NPOI组件的使用方法 3、.NET调用NPOI组件

1327

NPOI导出Excel的三种方式示例代码:项目的核心功能/场景

NPOI导出Excel的三种方式示例代码:项目的核心功能/场景 去发现同类优质开源项目:https://gitcode.com/ NPOI导出Excel的三种方式示例代码,助您轻松处理Excel文件导出需求。 项目介绍 在现代软件开发中,处理Excel文件是常见的需求之一。为了满足这一需求,NPOI(.NET Portable Office Interop)库提供了一个强大的工具,它允许开发者在....

gitblog_06791的博客 345

【原创】MyXls导出Excel (适用于Winform/WebForm)

Excel文章我已经写了两篇,有时间的可以去看一看。今天再说一种实现导出Excel的第三方组件MyXls组件。 我引用百度百科对它的描述: MyXls是一个操作Excel的开源类库,支持设置字体、列宽、行高(由BOSSMA实现)、合并单元格、边框、背景颜色、数据类型、自动换行、对齐方式等,通过众多项目的使用表现,证明MyXls对于创建简单格式的Excel文件十分快捷方便。 MyXLS...

weixin_30808253的博客 134

C# WinForm开发系列 - Print

收集了一些打印方面文章, 包含WinForm, Asp.Net中使用, 有结合Excel/Word, 也有直接使用报表工具打印功能, Web打印采用css结合WebBrowse控件.(文章及相关代码搜集自网络,仅供学习参考,版权属于原作者! ) 01.Windows Form 程序打印概述 02.文本文件打印类库(C#) 03.推荐一款Dat...

weixin_34221276的博客 402

【.net】未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序解决办法

excel导入数据库 外部表不是预期的格式 string strConn1 = "Provider = Microsoft.ACE.OLEDB.4.0; " + "Data Source = " + fileName + "; " + “Extended Properties =“Excel 8.0;HDR=Yes””; 未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供...

KevinJee_ 2040
上一篇: sql变量拼接解惑
下一篇: 关于sqlserver2005中的bit数据类型
pmandy
博客等级 码龄18年 13粉丝 155原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值