excel 导入导出access数据库(winform)

研究了好几天得出的最简单的方法。唉,头都大了。

//从excel导入到数据库。

            OleDbConnection conExcel = new OleDbConnection();
            try
            {
                OpenFileDialog openFile = new OpenFileDialog();//打开文件对话框。
                openFile.Filter = ("Excel 文件(*.xls)|*.xls");//后缀名。
                if (openFile.ShowDialog() == DialogResult.OK)
                {
                    string filename = openFile.FileName;
                    int index = filename.LastIndexOf("\\");//截取文件的名字
                    filename = filename.Substring(index + 1);
                    conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\Appdata.mdb";
                   //将excel导入access
                    //distinct :删除excel重复的行.
                    //[excel名].[sheet名] 已有的excel的表要加$
                    //where not in : 插入不重复的记录。
                    string sql = "insert into 用户表 select distinct * from [Excel 8.0;database=" + filename + "].[用户表$] where 记录编号   not  IN  (select  记录编号 from 用户表)";
                    OleDbCommand com = new OleDbCommand(sql, conExcel);
                    conExcel.Open();
                    com.ExecuteNonQuery();
                    MessageBox.Show("导入数据成功","导入数据", MessageBoxButtons.OK, MessageBoxIcon.Information );
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                conExcel.Close();
            }

 

//导出到excel操作。
  OleDbConnection conExcel = new OleDbConnection();
            try
            {
                SaveFileDialog saveFile = new SaveFileDialog();
                saveFile.Filter = ("Excel 文件(*.xls)|*.xls");//指定文件后缀名为Excel 文件。
                if (saveFile.ShowDialog() == DialogResult.OK)
                {
                     string filename = saveFile.FileName;
                     if (System.IO.File.Exists(filename))
                     {
                         System.IO.File.Delete(filename);//如果文件存在删除文件。
                      }
                    int index = filename.LastIndexOf("\\");//获取最后一个\的索引
                    filename = filename.Substring(index + 1);//获取excel名称(新建表的路径相对于SaveFileDialog的路径)
                    //select * into 建立 新的表。
                    //[[Excel 8.0;database= excel名].[sheet名] 如果是新建sheet表不能加$,如果向sheet里插入数据要加$. 
                    //sheet最多存储65535条数据。
                    string sql = "select top 65535 * into   [Excel 8.0;database=" + filename + "].[用户表] from 用户表";
                   conExcel.ConnectionString = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + Application.StartupPath + "\\Appdata.mdb";//将数据库放到debug目录下。
                    OleDbCommand com = new OleDbCommand(sql, conExcel);
                    conExcel.Open();
                    com.ExecuteNonQuery();
                    MessageBox.Show("导出数据成功","导出数据", MessageBoxButtons.OK, MessageBoxIcon.Information );
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                conExcel.Close();
            } 

转载于:https://www.cnblogs.com/aaliujing/archive/2007/01/30/634383.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
<h3>回答1:</h3><br/>要将Excel文件导入Winform应用程序中的数据库中,可以按照以下步骤进行操作: 1. 在Winform应用程序中添加一个“导入Excel”按钮,当用户单击该按钮时,弹出一个文件对话框,让用户选择要导入Excel文件。 2. 使用C#代码读取Excel文件中的数据,并将其存储在一个数据表中。 3. 使用ADO.NET连接到数据库,并将数据表中的数据插入到数据库中。 4. 在插入数据时,需要注意数据类型的匹配,以确保数据能够正确地插入到数据库中。 5. 在导入数据完成后,可以显示一个提示框,告诉用户导入操作已经完成。 总之,要将Excel文件导入Winform应用程序中的数据库中,需要使用C#代码读取Excel文件中的数据,并将其插入到数据库中。这需要一些编程技能和经验,但是一旦掌握了这些技能,就可以轻松地完成这个任务。 <h3>回答2:</h3><br/>Winform是一种基于Windows的应用程序开发平台,它提供了一种快速开发的方式来创建窗体应用程序。当我们需要将Excel中的数据导入数据库时,Winform也可以提供很好的解决方案。 在Winform中,我们可以使用Microsoft Office Excel组件来操作Excel文件,使用ADO.NET来连接数据库,并使用SQL语句将数据插入到数据库中。 具体实现步骤如下: 1. 创建Winform应用程序,添加Microsoft Office Excel组件和ADO.NET组件的引用。 2. 编写代码打开Excel文件并读取数据,可以使用以下代码实现: ``` Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application(); Microsoft.Office.Interop.Excel.Workbook workbook = excel.Workbooks.Open(excelFileName); Microsoft.Office.Interop.Excel.Worksheet worksheet = workbook.Worksheets[1]; Microsoft.Office.Interop.Excel.Range range = worksheet.UsedRange; for (int row = 1; row <= range.Rows.Count; row++) { int column = 1; string data1 = ((Microsoft.Office.Interop.Excel.Range)range.Cells[row, column++]).Text; string data2 = ((Microsoft.Office.Interop.Excel.Range)range.Cells[row, column++]).Text; // ... } ``` 3. 连接数据库并执行插入操作,可以使用以下代码实现: ``` string connectionString = "Data Source=(local);Initial Catalog=DatabaseName;Integrated Security=True"; SqlConnection connection = new SqlConnection(connectionString); connection.Open(); SqlCommand command = new SqlCommand("INSERT INTO TableName (Column1, Column2, ...) VALUES (@value1, @value2, ...)", connection); command.Parameters.AddWithValue("@value1", data1); command.Parameters.AddWithValue("@value2", data2); // ... command.ExecuteNonQuery(); connection.Close(); ``` 4. 最后记得在代码中添加异常处理,充分考虑程序的健壮性和稳定性。 总之,Winform导入Excel数据库并不难,只需要掌握好对Excel和ADO.NET的操作即可。希望这些步骤能对你有所帮助。 <h3>回答3:</h3><br/>Winform是一个基于Windows平台的应用程序框架,它提供了许多用于创建图形用户界面(GUI)的工具,如按钮、文本框、下拉列表框等,同时也支持与数据库进行交互,这使得开发人员可以方便地导入Excel文件到数据库。 将Excel文件中的数据导入数据库,首先需要以某种方式读取Excel文件中的数据。可以使用第三方开源库比如NPOI或EPPlus,也可以使用Microsoft自带的Office Interop库或ACE OLEDB Provider进行读取操作。 其中,NPOI是在.NET平台上对POI库的重新实现,它支持读取Excel 2003及以上版本的文件,实现简单,性能较好。而EPPlus是一个符合.NET标准的库,它能够支持读取Excel 2007及以上版本的文件,功能更加强大。Office Interop库则是使用COM方式与Excel交互,需要确保本机已经安装有Excel,同时也存在一些不兼容的问题。ACE OLEDB Provider则是微软提供的一种从Office到SQL Server的标准化数据访问方式,但不支持读取Excel的某些数据格式。 一旦读取到Excel文件中的数据,就可以通过ADO.NET或Entity Framework等方式将数据插入到数据库中。ADO.NET提供了一组对象,如SqlConnection、SqlCommand和SqlDataAdapter等,可以直接操作数据库。而Entity Framework则是一种Microsoft提供的ORM工具,它可以将数据库操作抽象成对象操作,减轻了开发人员的负担。 需要注意的是,在进行导入操作时,应该先对数据进行验证,确保数据符合要求,并为不同的数据类型选择正确的转换方式,避免数据类型错误导致的异常。同时,在导入数据时,还应该注意数据的唯一性,避免重复数据的插入。 总的来说,Winform导入Excel数据库操作涉及到数据读取、数据验证、数据库操作等多个方面,需要综合考虑各方面因素,确保数据的正确性和有效性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值