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();
}
}
}
分享到:
相关推荐
我是新手一枚,做了个winform导入Excel到数据库的小东西,分享给大家,请大家指点下。 文件里面有我的导入的Excel文件,估计只能导这样的吧。不过改改还是能导别的数据的。
C# winform操作Excel 读取Excel,写入Excel 导入导出Excel,比较适合新手
C#winform实现Excel导入数据库相应的表中。
WInform 程序 将Excel导入SQLSERVER数据库
技术特点:采用winform编写,操作简单,界面美观。 功能介绍: 可以根据excel的列进行与数据库列的匹配。 可以自动检测excel中的信息是否符合规定。不符合给出提示。 其他功能有单位管理,类型管理,批次管理,...
C#中,winform中dataGridView导入EXCLE数据,或从dataGridView中导出Excel表格。可以指定导入路径或导出路径。
winform将Excel.xls读入DataGridview显示并将dataset读入sqlsever2008r
帮客户做的一款导入Excel工具,并可通过导入的关键词进行筛选过滤,然后导出Excel。工具虽然简单,但是值得学习和借鉴。对winform学习Excel导入导出的初学者有很大帮助 开发工具是vs2017 .net版本为4.5
本文实例为大家分享了Winform实现导入导出Excel文件的具体代码,供大家参考,具体内容如下 /// /// 导出Excel文件 /// /// /// <param name=dataSet></param> /// 数据集 /// 导出后是否打开文件 /// ...
C# winform Excel导入导出类,可以导出Excel,可以导入excel。支持07以上或以下版本,需要引用com组件里的microsoft excel,不需要安装其他插件。
WinForm读取Excel+并导入到数据库相应的表里 winForm c#DOC文档
关于C# winform从EXCEL导入到SQL库的导入,导出可以按导入进行修改下。
winform使用Microsoft.Office.Interop.Excel读取带有合并单元格的Excel的demo,Excel版本不限,可以是.xls可以是.xlsx版本。本程序采用webbrowser显示读取的数据,使用bootstrap的css样式美化table表格,使用Json...
C#_WinForm下Excel导入导出,文档中有导入导出的源代码
winform实现excel导入数据并导出
C# winform 读取Excel表格中的数据,C# winform 读取Excel表格中的数据
WinForm读取Excel 并导入到数据库相应的表里(有图有真相) 代码完整,如果是第一次 用WinForm 读取Excel数据的人 可以将代码直接Copy过去,不会出错也不需添加引用,并包含一个C#操作Excel类,功能比较全,有兴趣的...
winform实现Excel导入数据库,visual studio2005 + access数据库
C# WINFORM excel数据导入
最近工作需要做一个导入Excel功能,特地学习制作,代码逻辑清晰,注释明确,方便新手入门。可导入多表头Excel数据文件,免去新手找DLL、无从下手等一系列问题。