C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中

实际的开发中,我们会经常遇到数据的转化的需要,将Excel中的数据转入到SQL中,或将SQL在数据库表中的数据导入到Excel中。代码如下:

Code
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;

namespace Encryption
{
public partial class ExcelDemo : Form
{
private static string _filePath = string.Empty;

public ExcelDemo()
{
InitializeComponent();
BindUser();
}
///

/// 绑定数据
///

private void BindUser()
{
string sql = "select * from Users";
DataTable dt = DbHelperSQL.QueryTb(sql);
dataGridView1.DataSource = dt;
}
///

/// 将Users表中的数据导入Excel中
///

private void 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
/// 选择要向SQL数据库中导入数据的Excel文件
///

private void 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数据库中
///

private void btnExcelout_Click(object sender, EventArgs e)
{
DataSet ds=ImportFromExcel(txtPath.Text.Trim());
DataTable dt = ds.Tables[0];

try
{
string strInsertComm;
for (int i = 0; i

1)
{
strInsertComm += ",‘" + dt.Rows[i][j].ToString().Trim() + "‘";
}
else
{
strInsertComm += "‘" + dt.Rows[i][j].ToString().Trim() + "‘";
}
}
strInsertComm += ")";
DbHelperSQL.ExecuteSql(strInsertComm);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}

#region Excel导入SQL数据库
///

/// 获取Excel数据表列表
///

///
public static ArrayList GetExcelTables(string FilePath)
{
//将Excel架构存入数据里
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, new object[] { null, null, null, "TABLE" });
}
catch (Exception exp)
{
MessageBox.Show(exp.Message);
}

//获取数据表个数
int tablecount = dt.Rows.Count;
for (int i = 0; i
/// 导入Excel数据表至DataTable(第一行作为表头)
///

///
public static System.Data.DataSet FillDataSet(string FilePath)
{
if (!File.Exists(FilePath))
{
throw new Exception("Excel文件不存在!");
}

ArrayList TableList = new ArrayList();
TableList = GetExcelTables(FilePath);
if (TableList.Count
/// Excel导入数据库
///

///
public static DataSet ImportFromExcel(string FilePath)
{
return FillDataSet(FilePath);
}

#endregion

}
}
数据从SQL到Excel中利用了GemBox.ExcelLite.dll,网上可以下载。
代码很简单,希望大家有什么更好的方法,分享出来啊!有的时候可能需要对导入导出的数据加密,只需要定义一个加密函数,依次的对数据加密就ok了。

时间: 2024-10-12 12:46:41

C#将SQL数据库中数据导入Excel中,并将Excel中反导入SQL数据库中的相关文章

SQL Server 2008数据备份与还原的原理是什么?

为什么SqlServer有完整备份.差异备份和事务日志备份三种备份方式,以及为什么数据库又有简单模式.完整模式和大容量日志模式这三种恢复模式.本文内容适用于2005以上所有版本的SqlServer数据库. 单就操作过程而言,SqlServer中数据库备份和恢复过程是相当简单的,可以通过ManagementStudio的图形界面进行操作,也可以使用几句T-SQL语句完成.但要明白备份恢复的整个过程,定制符合系统需求数据库备份方案,却需要知晓数据库的实现原理.备份和恢复是数据库的核心功能. 可能许多

详细介绍MySQL中数据的备份与恢复,防止数据丢失

在日常的生产环境中为什么要进行备份 ??备份可以使生产中的数据进行有效的灾难恢复:硬件故障.软件故障.自然灾害.**.误操作测试等数据丢失场景. 备份注意要点 能容忍最多丢失多少数据 恢复数据需要在多长时间内完成 需要恢复哪些数据 还原要点 做还原测试,用于测试备份的可用性 还原演练 备份类型 完全备份.不分备份 完全备份:整个数据集 部分备份:只备份数据子集,如部分库或表 增量备份.差异备份 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂 差异备份

在SQL Server中将数据导出为XML和Json

原文:在SQL Server中将数据导出为XML和Json     有时候需要一次性将SQL Server中的数据导出给其他部门的也许进行关联或分析,这种需求对于SSIS来说当然是非常简单,但很多时候仅仅需要一次性导出这些数据而建立一个SSIS包就显得小题大做,而SQL Server的导入导出工具其中BUG还是蛮多的,最简单的办法是BCP.   数据导出为XML     在SQL Server 2005之后提供了一个for xml子句在关系数据库中原生支持XML.通过该命令可以将二维关系结果集转

NoSQL数据库:数据的一致性

NoSQL数据库:数据的一致性 读取一致性 强一致性 在任何时间访问集群中任一结点,得到的数据结果一致: 用户一致性       对同一用户,访问集群期间得到的数据一致:        解决用户一致性:使用粘性会话,将会话绑定到特定结点来处理:        这样会降低负载均衡器的性能: 最终一致性       集群中各结点间由于数据同步不及时造成暂时的数据不一致,但数据同步完成后,最终具有一致性: 更新一致性 悲观方式 使用写锁 大幅降低系统响应能力 可能导致死锁 乐观方式 先让冲突发生,再检

如何将.SQL文件的数据导入到Mysql的数据库中

一.用cmd的调试环境导入.sql文件中的数据: WinR键打开cmd输入: MySQL -u root -p 进入MySQL后MySQL>use DR;   MySQL> source c:/DR.sql 注意上面的 DR是你事先创建好的文件夹,创建在Mysql的data目录下面,DR.sql是你下载的数据库的内容,注意DR.sql是要放在磁盘的最外层目录的,否则无法导入数据. 二.用Mysql Workbence调试环境导入数据: 打开Mysql Workbence软件,选择Data Im

用java将excel中数据导入mysql

java的poi技术读取Excel数据到MySQL 这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 :java的jxl技术导入Excel  项目结构: Excel中的测试数据: 数据库结构: 对应的SQL: 1 CREATE TABLE `student_info` ( 2 `id` int(11) NOT NULL AUTO_INCREMENT

POI 读取Excel文件,将Excel数据导入数据库

/** * 读取Excel单元格所显示的字符串(显示什么就返回什么) * 创建人:minlorry * 创建日期:2015-07-31 * 更新日期:2015-07-31 * 更新说明:生硬地处理了数值单元格的处理,日期单元格未作处理. * @param cell Excel单元格 * @return String 单元格显示的字符串 */ public static String getStringValue(Cell cell) { String stringValue = "";

使用Sqoop1.4.4将MySQL数据库表中数据导入到HDFS中

问题导读:         1.--connect参数作用? 2.使用哪个参数从控制台读取数据库访问密码? 3.Sqoop将关系型数据库表中数据导入HDFS基本参数要求及命令? 4.数据默认导入HDFS文件系统中的路径? 5.--columns参数的作用? 6.--where参数的作用? 一.部分关键参数介绍 参数介绍 --connect <jdbc-uri> 指定关系型数据库JDBC连接字符串 --connection-manager <class-name> 指定数据库使用的管

C#将数据库导出成Excel,再从Excel导入到数据库中。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using System.IO; namespace CindyDatabaseProcess { class Program { static void Main(string[] args) { System.Data.DataTable dt1 = null; S

java实现从一个数据库查询数据经过处理导入另外一个数据库中

当数据库表中有clob字段或要对表中数据做较复杂处理时就不太好用脚本从一个数据库导入数据到另外一个数据库中了,这时就要通过代码实现了,下面以orale数据库为例代码如下: import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.Timestamp; import java.text