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();
}
}
}
分享到:
相关推荐
本文实例讲述了C#使用NPOI导入Excel的方法。分享给大家供大家参考,具体如下: NPOI是由国人开发的一个进行excel操作的第三方库。百度百科介绍如下:NPOI 本文主要介绍如何使用NPOI将Excel数据读取。 首先引入程序集...
在导入Excel到SQL Server时,开发者可能会使用`System.Data.SqlClient`命名空间中的`SqlConnection`类来建立与SQL Server的连接,`SqlCommand`类来执行SQL命令,以及`SqlDataAdapter`和`DataSet`类进行数据的填充和...
总之,C#中导出和导入Excel数据涉及多个库和策略,根据项目需求选择合适的方法。EPPlus库是一个高效且易于使用的选项,而`Microsoft.Office.Interop.Excel`则适用于需要更多Excel特性的场景。在实际应用中,务必注意...
本示例"实现Excel表格导入数据库.zip"提供了一个使用C#、Winform和.NET框架实现的源码Demo,帮助开发者理解如何将Excel数据高效地导入到数据库中。这个功能在数据迁移、数据分析或者报表生成等场景下非常实用。 ...
在IT行业中,数据的导入与导出是常见的操作,特别是在数据分析、报表生成和信息共享时。Excel作为一款广泛使用的电子表格软件,其格式被许多系统所支持。"NOPI导出excel"是一个针对NOPI(可能指的是无界面编程接口或...
一个公共类库 NOPI MyXls操作Excel分别对应有Web与WinForm项目 VS2010开发">使用NPOI2 1 3 MyXls对Excel进行导入导出操作 NOPI导入导出均支持 xls与 xlsx格式 支持数据自适应单元格宽度 固定表头 设置行高等一系列...
首先,我们要了解Web API的核心概念。Web API是微软为构建RESTful服务而设计的一个框架,它可以轻松地创建HTTP服务,这些服务可以被多种客户端,包括浏览器、移动设备和桌面应用所消费。C#是编写Web API服务的主要...
1. **导入Excel数据**: - 使用NPOI,你可以读取Excel文件中的数据并将其加载到内存中。首先,你需要创建一个FileStream对象打开Excel文件,然后根据文件类型创建相应的Workbook实例(HSSFWorkbook或XSSFWorkbook)...
(1)支持web及winform从DataTable导出到Excel; (2)生成速度很快; (3)准确判断数据类型,不会出现身份证转数值等问题; (4)如果单页条数大于65535时会新建工作表; (5)列宽自适应;
1. **批量导入考题**:系统支持批量导入试题,这样教师或管理员可以快速地构建题库,节省了手动录入的时间。这通常涉及到文件导入功能,如CSV或Excel格式,通过解析文件内容将题目信息存储到数据库中。 2. **考生...
在这种情况下,用户可能可以通过Winform界面导入txt或JSON文件,然后点击按钮将数据转换并保存为Excel格式。 【知识点详解】 1. JSON格式:JSON是一种基于文本的数据交换格式,其结构类似于JavaScript的对象字面量...
控件支持多种格式的导入和导出,使得用户可以在WinForm应用内查看和编辑Word文档。 3. **图片查看**:虽然DevExpress没有特定的图片查看控件,但你可以使用DevExpress.Utils.v16.1.dll中的图像处理类,结合Windows ...
JSON转EXCEL文件离线安装包是一个专为C# WinForm平台设计的应用程序,它能够方便地将JSON数据转换成Excel格式,以便于数据分析、报表生成或者数据存储。这个安装包包含了所有必要的组件,用户无需在线下载多个依赖库...
而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文件读取数据并将其导入到数据库的功能。这一过程不仅简化了数据输入的操作,也提高了数据录入的准确性和效率。 首先...
C#中使用NPOI进行Excel操作,基本上一些简单的...对NPOI做了封装,本例既可以使用于Web端 asp.net中,也可以适用于C# Winform中,同时包含对应的NPOI所需要的DLL 文件。 经过测试可以正常使用,已经使用在几个项目中。
本项目"WordExcel数据提取.zip"提供了一个基于C#的WinForm应用程序,它使用Visual Studio 2017开发,能够从Word和Excel文件中提取数据,并将这些数据保存为CSV格式,进一步可以将这些数据插入到SQL Server数据库中。...