热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

导入Excel表中的数据

第一步:转换导入的文件privatevoidbtnSelectFile_Click(objectsender,EventArgse){OpenFileDialo

第一步:转换导入的文件

  private void btnSelectFile_Click(object sender, EventArgs e)
{
OpenFileDialog ofd
= new OpenFileDialog();
ofd.Title
= "Excel文件";
ofd.FileName
= "";
ofd.InitialDirectory
= Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
ofd.Filter
= "Excel文件(*.xls)|*.xls";
ofd.ValidateNames
= true;
ofd.CheckFileExists
= true;
ofd.CheckPathExists
= true;
if (openFileDialog.ShowDialog() == DialogResult.OK)
{
txtFileName.Text
= openFileDialog.FileName;
}

}

 第二步:执行导入

    private void btnImport_Click(object sender, EventArgs e)
{
if (cboSaleStock.SelectedIndex == -1)
{
MessageBox.Show(
"没有选择销售仓库");
return;
}
if (cboShop.SelectedIndex == -1)
{
MessageBox.Show(
"没有选择销售门店");
return;
}
if (string.IsNullOrEmpty(txtFileName.Text) || txtFileName.Text.Length == 0)
{
MessageBox.Show(
"没有选择Excel文件!无法进行数据导入");
return;
}
DataTable dt
= ExcelToDataTable(txtFileName.Text);
string sql = string.Empty;
for (int i = 0; i )
{
sql += string.Format(@" declare @sno{4} int,@dgrID{4} varchar(20)
set @dgrID{4}=(select top 1 dgoodsresultid from tbdGoodsResult where shopID='{0}' and stockid='{1}' and goodsid='{2}')
if @dgrID{4} is null begin
set @sno{4}=(select top 1 sno from tbpKeyManager where tablename='tbdGoodsResult')
if @sno{4} is null begin
insert into tbpKeyManager(tablename,sno,trdate) values('tbdGoodsResult',1,CONVERT(varchar(12),getdate(),112 ))
set @sno{4}=1
end else begin
set @sno{4}=@sno{4}+1
update tbpKeyManager set sno=sno+1 where tablename='tbdGoodsResult'
end
insert into tbdGoodsResult(dgoodsresultid,shopid,stockid,goodsid,pthismonthqty)
values(cast(@sno{4} as varchar(11)),'{0}','{1}','{2}','{3}')
end else begin
update tbdGoodsResult set pthismOnthqty={3} where dgoodsresultid=@dgrID{4}
end
", cboShop.SelectedValue, cboSaleStock.SelectedValue, dt.Rows[i][2], dt.Rows[i][1], i);
}
string msg = "";
if (ws.ExecuteNonQueryWithTrans(sql, ref msg) > 0)
{
MessageBox.Show(
"导入数据成功");
}
if (msg.Length > 0)
{
MessageBox.Show(
"导入数据失败:\r\n" + msg);
}
}

第三步:Excel数据导入

      private DataTable ExcelToDataTable(string filePath)
{
//根据路径打开一个Excel文件并将数据填充到DataSet中
string strCOnn= "Provider=Microsoft.Jet.OLEDB.4.0;Data Source = " + filePath + ";Extended Properties ='Excel 8.0;HDR=NO;IMEX=1'";//导入时包含Excel中的第一行数据,并且将数字和字符混合的单元格视为文本进行导入
OleDbConnection cOnn= new OleDbConnection(strConn);
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand
= null;
DataSet ds
= null;
strExcel
= "select * from [sheet1$]";
myCommand
= new OleDbDataAdapter(strExcel, strConn);
ds
= new DataSet();
myCommand.Fill(ds,
"table1");
DataTable dt
= ds.Tables[0];
dt.Columns.Add(
"goodsid");
string joinSql = "select '' pluno";
foreach (DataRow dr in dt.Rows)
{
joinSql
+= string.Format(" union all select '{0}' pluno", dr[0]);
}
string sql = string.Format(@"select tbgoods.goodsid,tbgoods.pluno from tbgoods join ({0}) as t on t.pluno=tbgoods.pluno ", joinSql);
DataTable dtGoods
= cf.GetDataSet(sql).Tables[0];
foreach (DataRow dr in dt.Rows)
{
foreach (DataRow dr1 in dtGoods.Rows)
{
if (dr[0].ToString().ToUpper() == dr1["pluno"].ToString())
{
dr[
"goodsid"] = dr1["goodsid"].ToString();
}
}
}
return ds.Tables[0];
}

 


推荐阅读
  • 本文详细介绍了Java中org.eclipse.ui.forms.widgets.ExpandableComposite类的addExpansionListener()方法,并提供了多个实际代码示例,帮助开发者更好地理解和使用该方法。这些示例来源于多个知名开源项目,具有很高的参考价值。 ... [详细]
  • 本文介绍如何利用QFileSystemModel进行目录的浏览、创建及删除操作,并提供了一个简单的对话框界面实现。 ... [详细]
  • java学习日记对JFrame的操作
    设置背景图片、添加音乐、监控键盘、改变字体风格等等!importjava.applet.Applet;importjava.applet.AudioClip;importjava. ... [详细]
  • 主要用了2个类来实现的,话不多说,直接看运行结果,然后在奉上源代码1.Index.javaimportjava.awt.Color;im ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • Android Studio 中 Activity 组件详解
    本文介绍了 Android 开发中 Activity 的基本概念、生命周期、状态转换以及如何创建和管理 Activity。通过详细的解释和示例代码,帮助开发者更好地理解和使用 Activity。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文探讨了Hive中内部表和外部表的区别及其在HDFS上的路径映射,详细解释了两者的创建、加载及删除操作,并提供了查看表详细信息的方法。通过对比这两种表类型,帮助读者理解如何更好地管理和保护数据。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 本文介绍了基于Java的汽车租赁系统开发,涵盖了从车辆采购预算到车辆维护的全过程管理。该系统利用现代互联网技术和数据库技术,实现了汽车租赁行业的全面信息化。 ... [详细]
  • 本文详细探讨了如何在 C# 中使用 Infragistics 组件库解决常见的开发问题,包括工具栏按钮禁用、Grid 中的时间记录及样式设置、以及 Excel 导出功能的实现。 ... [详细]
  • 本文通过一个实际案例,详细介绍了如何使用Excel VBA和FSO(FileSystemObject)对象来提取指定文件夹中的所有文件名称,并将其以超链接的形式添加到Excel表格中。 ... [详细]
  • Flutter入门指南:实现自动关闭的对话框与提示
    本文为Flutter系列教程的一部分,专注于讲解如何在Flutter应用中实现自动关闭的对话框和提示。通过具体的代码示例,帮助开发者掌握SnackBar、BottomSheet和Dialog的使用方法。 ... [详细]
author-avatar
可爱de小蜗牛
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有