`
冷寒冰
  • 浏览: 251669 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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();
                }
            }


        }

0
0
分享到:
评论

相关推荐

    C#使用NPOI导入Excel的方法详解

    本文实例讲述了C#使用NPOI导入Excel的方法。分享给大家供大家参考,具体如下: NPOI是由国人开发的一个进行excel操作的第三方库。百度百科介绍如下:NPOI 本文主要介绍如何使用NPOI将Excel数据读取。 首先引入程序集...

    客户端将Excel导入SQL Server C#源码下载

    在导入Excel到SQL Server时,开发者可能会使用`System.Data.SqlClient`命名空间中的`SqlConnection`类来建立与SQL Server的连接,`SqlCommand`类来执行SQL命令,以及`SqlDataAdapter`和`DataSet`类进行数据的填充和...

    导出导入Excel(C#)

    总之,C#中导出和导入Excel数据涉及多个库和策略,根据项目需求选择合适的方法。EPPlus库是一个高效且易于使用的选项,而`Microsoft.Office.Interop.Excel`则适用于需要更多Excel特性的场景。在实际应用中,务必注意...

    实现Excel表格导入数据库.zip

    本示例"实现Excel表格导入数据库.zip"提供了一个使用C#、Winform和.NET框架实现的源码Demo,帮助开发者理解如何将Excel数据高效地导入到数据库中。这个功能在数据迁移、数据分析或者报表生成等场景下非常实用。 ...

    NOPI导出excel

    在IT行业中,数据的导入与导出是常见的操作,特别是在数据分析、报表生成和信息共享时。Excel作为一款广泛使用的电子表格软件,其格式被许多系统所支持。"NOPI导出excel"是一个针对NOPI(可能指的是无界面编程接口或...

    NPOI2.1.3与MyXls操作Excel实例

    一个公共类库 NOPI MyXls操作Excel分别对应有Web与WinForm项目 VS2010开发"&gt;使用NPOI2 1 3 MyXls对Excel进行导入导出操作 NOPI导入导出均支持 xls与 xlsx格式 支持数据自适应单元格宽度 固定表头 设置行高等一系列...

    Web Api 通过文件流 下载文件到本地实例

    首先,我们要了解Web API的核心概念。Web API是微软为构建RESTful服务而设计的一个框架,它可以轻松地创建HTTP服务,这些服务可以被多种客户端,包括浏览器、移动设备和桌面应用所消费。C#是编写Web API服务的主要...

    c# NPOI 导入和导出EXCEL

    1. **导入Excel数据**: - 使用NPOI,你可以读取Excel文件中的数据并将其加载到内存中。首先,你需要创建一个FileStream对象打开Excel文件,然后根据文件类型创建相应的Workbook实例(HSSFWorkbook或XSSFWorkbook)...

    基于NPOI组件的Excel导入导出

    (1)支持web及winform从DataTable导出到Excel; (2)生成速度很快; (3)准确判断数据类型,不会出现身份证转数值等问题; (4)如果单页条数大于65535时会新建工作表; (5)列宽自适应;

    C# 学员在线考试系统(可自动批阅试卷,批量导入考题)

    1. **批量导入考题**:系统支持批量导入试题,这样教师或管理员可以快速地构建题库,节省了手动录入的时间。这通常涉及到文件导入功能,如CSV或Excel格式,通过解析文件内容将题目信息存储到数据库中。 2. **考生...

    txt(JSON)数据转EXCEL工具(安装包)

    在这种情况下,用户可能可以通过Winform界面导入txt或JSON文件,然后点击按钮将数据转换并保存为Excel格式。 【知识点详解】 1. JSON格式:JSON是一种基于文本的数据交换格式,其结构类似于JavaScript的对象字面量...

    winform打开pdf,word,图片

    控件支持多种格式的导入和导出,使得用户可以在WinForm应用内查看和编辑Word文档。 3. **图片查看**:虽然DevExpress没有特定的图片查看控件,但你可以使用DevExpress.Utils.v16.1.dll中的图像处理类,结合Windows ...

    JSON转EXCEL文件离线安装包

    JSON转EXCEL文件离线安装包是一个专为C# WinForm平台设计的应用程序,它能够方便地将JSON数据转换成Excel格式,以便于数据分析、报表生成或者数据存储。这个安装包包含了所有必要的组件,用户无需在线下载多个依赖库...

    Txt、Exl自适应导入GridView

    而Excel文件则是Microsoft Office中的一个应用程序,用于处理和管理结构化的表格数据,支持丰富的格式化和计算功能。 当需要将TXT或EXL数据导入到GridView时,我们需要进行以下步骤: 1. **数据读取**:首先,我们...

    导入数据源代码

    数据源是应用程序获取数据的地方,可以是数据库(如MySQL、SQL Server、Oracle)、文件(如CSV、Excel、XML)、Web服务等。在Winform中,我们通常会用到ADO.NET框架来连接和操作这些数据源。 二、ADO.NET简介 ADO...

    养老院管理系统

    在系统设计中,利用了WinForm作为用户界面,通过集成Microsoft Office Interop库,实现了从Excel文件读取数据并将其导入到数据库的功能。这一过程不仅简化了数据输入的操作,也提高了数据录入的准确性和效率。 首先...

    封装好的NPOI导入和导出Excel

    C#中使用NPOI进行Excel操作,基本上一些简单的...对NPOI做了封装,本例既可以使用于Web端 asp.net中,也可以适用于C# Winform中,同时包含对应的NPOI所需要的DLL 文件。 经过测试可以正常使用,已经使用在几个项目中。

    WordExcel数据提取.zip

    本项目"WordExcel数据提取.zip"提供了一个基于C#的WinForm应用程序,它使用Visual Studio 2017开发,能够从Word和Excel文件中提取数据,并将这些数据保存为CSV格式,进一步可以将这些数据插入到SQL Server数据库中。...

Global site tag (gtag.js) - Google Analytics