2022年C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中 .pdf
C#将 SQL 数据库中数据导入Excel中,并将 Excel中反导入 SQL 数据库中实际的开发中,我们会经常遇到数据的转化的需要,将Excel 中的数据转入到SQL 中,或将 SQL 在数据库表中的数据导入到Excel 中。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using GemBox.ExcelLite;using System.Data.SqlClient;using System.Data.OleDb;using System.Collections;using System.IO;名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 7 页 -namespace Encryption publicpartialclass ExcelDemo:Form privatestaticstring _filePath=string.Empty;public ExcelDemo()InitializeComponent();BindUser();/绑定数据/privatevoid BindUser()string sql=select*from Users;DataTable dt=DbHelperSQL.QueryTb(sql);dataGridView1.DataSource=dt;/将 Users表中的数据导入Excel中/privatevoid btnExcelin_Click(object sender,EventArgs e)ExcelFile excelFile=new ExcelFile();ExcelWorksheet sheet=excelFile.Worksheets.Add(Users);int columns=dataGridView1.Columns.Count;int rows=dataGridView1.Rows.Count;for(int j=0;j columns;j+)sheet.Cells0,j.Value=dataGridView1.Columnsj.HeaderText;for(int i=1;i rows;i+)名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 7 页 -for(int j=0;j columns;j+)sheet.Cellsi,j.Value=dataGridView1j,i-1.Value.ToString().Trim();excelFile.SaveXls(./Users.xls);MessageBox.Show(生成成功 );/选择要向SQL 数据库中导入数据的Excel文件/privatevoid btnChoose_Click(object sender,EventArgs e)using(OpenFileDialog dialog=new OpenFileDialog()dialog.Multiselect=true;if(dialog.ShowDialog()=DialogResult.OK)try txtPath.Text=dialog.FileName;catch /将 Excel中的数据导入到SQL 数据库中/privatevoid btnExcelout_Click(object sender,EventArgs e)DataSet ds=ImportFromExcel(txtPath.Text.Trim();DataTable dt=ds.Tables0;try名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 7 页 -string strInsertComm;for(int i=0;i dt.Rows.Count;i+)strInsertComm=;strInsertComm=Insert INTO NewUsers(LoginNum,UserName,Password,Email,UserHead,Sex,BloodType,BirthPlace,UserLevel,Education,Occupational,Contact,Profile);strInsertComm+=values(;for(int j=1;j 1)strInsertComm+=,+dt.Rowsij.ToString().Trim()+;else strInsertComm+=+dt.Rowsij.ToString().Trim()+;strInsertComm+=);DbHelperSQL.ExecuteSql(strInsertComm);catch(Exception ex)MessageBox.Show(ex.Message);#region Excel导入 SQL 数据库/获取 Excel数据表列表/publicstatic ArrayList GetExcelTables(string FilePath)/将 Excel架构存入数据里名师资料总结-精品资料欢迎下载-名师精心整理-第 4 页,共 7 页 -System.Data.DataTable dt=new System.Data.DataTable();ArrayList TablesList=new ArrayList();if(File.Exists(FilePath)using(OleDbConnection conn=new OleDbConnection(Provider=Microsoft.Jet.+OLEDB.4.0;Extended Properties=Excel 8.0;Data Source=+FilePath)try conn.Open();dt=conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables,newobject null,null,null,TABLE);catch(Exception exp)MessageBox.Show(exp.Message);/获取数据表个数int tablecount=dt.Rows.Count;for(int i=0;i tablecount;i=i+2)string tablename=dt.Rowsi2.ToString().Trim().TrimEnd($);if(TablesList.IndexOf(tablename)0)TablesList.Add(tablename);return TablesList;/导入 Excel数据表至DataTable(第一行作为表头)/名师资料总结-精品资料欢迎下载-名师精心整理-第 5 页,共 7 页 -/publicstatic System.Data.DataSet FillDataSet(string FilePath)if(!File.Exists(FilePath)thrownew Exception(Excel文件不存在!);ArrayList TableList=new ArrayList();TableList=GetExcelTables(FilePath);if(TableList.Count=0)returnnull;System.Data.DataTable table;System.Data.DataSet ds=new DataSet();OleDbConnection dbcon=new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=+FilePath+;Extended Properties=Excel 8.0);try if(dbcon.State=ConnectionState.Closed)dbcon.Open();for(int i=0;i TableList.Count;i+)string dtname=TableListi.ToString();try OleDbCommand cmd=new OleDbCommand(select*from +dtname+$,dbcon);OleDbDataAdapter adapter=new OleDbDataAdapter(cmd);table=new DataTable(dtname);adapter.Fill(table);ds.Tables.Add(table);catch(Exception exp)名师资料总结-精品资料欢迎下载-名师精心整理-第 6 页,共 7 页 -MessageBox.Show(exp.Message);finally if(dbcon.State=ConnectionState.Open)dbcon.Close();return ds;/Excel导入数据库/publicstatic DataSet ImportFromExcel(string FilePath)return FillDataSet(FilePath);#endregion 数据从 SQL 到 Excel 中利用了 GemBox.ExcelLite.dll,网上可以下载。代码很简单,希望大家有什么更好的方法,分享出来啊!有的时候可能需要对导入导出的数据加密,只需要定义一个加密函数,依次的对数据加密就ok 了。名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 7 页 -