excel 数据关联

问题描述

因为各种原因接到一个项目,获得大量数据.其中有两个excel表,A和BA数据多,B数据少,除地址列外无重复列,所以关联只有地址列....地址列大家都懂,很接近但是差别还是有的.问:怎么把A和B整合,可以把B填入A也可以整合成新的,意思都一样,

解决方案

解决方案二:
1:创建两个临时表A,B,C2:excel分别插入数据表3:sql匹配插入新表C4:导出C表
解决方案三:
把多个Excel文件汇总到一个Excel文件//选择多个文件privatevoidbtn_SelectMultiExcel_Click(objectsender,EventArgse){txt_MultiExcel.Text="";//清空文本框OpenFileDialogopenMultiExcel=newOpenFileDialog();//实例化打开对话框对象openMultiExcel.Filter="Excel文件|*.xls";//设置打开文件筛选器openMultiExcel.Multiselect=true;//设置打开对话框中可以多选if(openMultiExcel.ShowDialog()==DialogResult.OK)//判断是否选择了文件{for(inti=0;i<openMultiExcel.FileNames.Length;i++)//遍历选择的多个文件txt_MultiExcel.Text+=openMultiExcel.FileNames[i]+",";//显示选择的多个Excel文件}}//选择文件事件privatevoidbtn_SelectExcel_Click(objectsender,EventArgse){OpenFileDialogopenExcel=newOpenFileDialog();//实例化打开对话框对象openExcel.Filter="Excel文件|*.xls";//设置打开文件筛选器openExcel.Multiselect=false;//设置打开对话框中不能多选if(openExcel.ShowDialog()==DialogResult.OK)//判断是否选择了文件{txt_Excel.Text=openExcel.FileName;//显示选择的Excel文件}}//汇总到数据表事件privatevoidbtn_Gather_Click(objectsender,EventArgse){objectmissing=System.Reflection.Missing.Value;//定义object缺省值string[]P_str_Names=txt_MultiExcel.Text.Split(',');//存储所有选择的Excel文件名stringP_str_Name="";//存储遍历到的Excel文件名List<string>P_list_SheetNames=newList<string>();//实例化泛型集合对象,用来存储工作表名称Microsoft.Office.Interop.Excel.Applicationexcel=newMicrosoft.Office.Interop.Excel.Application();//实例化Excel对象//打开指定的Excel文件Microsoft.Office.Interop.Excel.Workbookworkbook=excel.Application.Workbooks.Open(txt_Excel.Text,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);Microsoft.Office.Interop.Excel.WorksheetnewWorksheet=(Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets.Add(missing,missing,missing,missing);//创建新工作表for(inti=0;i<P_str_Names.Length-1;i++)//遍历所有选择的Excel文件名{P_str_Name=P_str_Names[i];//记录遍历到的Excel文件名//指定要复制的工作簿Microsoft.Office.Interop.Excel.WorkbookTempworkbook=excel.Application.Workbooks.Open(P_str_Name,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);P_list_SheetNames=GetSheetName(P_str_Name);//获取Excel文件中的所有工作表名for(intj=0;j<P_list_SheetNames.Count;j++)//遍历所有工作表{//指定要复制的工作表Microsoft.Office.Interop.Excel.WorksheetTempWorksheet=(Microsoft.Office.Interop.Excel.Worksheet)Tempworkbook.Sheets[P_list_SheetNames[j]];//创建新工作表TempWorksheet.Copy(missing,newWorksheet);//将工作表内容复制到目标工作表中}Tempworkbook.Close(false,missing,missing);//关闭临时工作簿}//CodeGo.net/workbook.Save();//保存目标工作簿workbook.Close(false,missing,missing);//关闭目标工作簿MessageBox.Show("已经将所有选择的Excel工作表汇总到了一个Excel工作表中!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);CloseProcess("EXCEL");//关闭所有Excel进程}//打开选择的Excel文件privatevoidbtn_Browse_Click(objectsender,EventArgse){System.Diagnostics.Process.Start(txt_Excel.Text);//打开选择的Excel文件}//获取所有工作表名称privateList<string>GetSheetName(stringP_str_Excel){List<string>P_list_SheetName=newList<string>();//实例化泛型集合对象//连接Excel数据库OleDbConnectionolecon=newOleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+P_str_Excel+";ExtendedProperties=Excel8.0");olecon.Open();//打开数据库连接System.Data.DataTableDTable=olecon.GetSchema("Tables");//实例化表对象DataTableReaderDTReader=newDataTableReader(DTable);//实例化表读取对象while(DTReader.Read())//循环读取{stringP_str_Name=DTReader["Table_Name"].ToString().Replace('$','').Trim();//记录工作表名称if(!P_list_SheetName.Contains(P_str_Name))//判断泛型集合中是否已经存在该工作表名称P_list_SheetName.Add(P_str_Name);//将工作表名添加到泛型集合中}DTable=null;//清空表对象DTReader=null;//清空表读取对象olecon.Close();//关闭数据库连接returnP_list_SheetName;//返回得到的泛型集合}//字符关系恕未能关闭进程
解决方案四:
1.你可以调用百度api判断地址的经纬度,以此来作为判断“是否一致”的一种HashCode。2.比较是否重复时,应该是用Dictionaty<LatLngString,DataRow>来查找,而不是顺序扫描。这显然可以提高几万倍速度。
解决方案五:
像这种操纵excel表的,用C#反倒更麻烦了,建议直接用excel的VBS脚本
解决方案六:
....主要是需要比对地址...整合成一个不是难题...主要是这个地址比对....地址比对....地址比对....
解决方案七:
地址比对是个麻烦的事,主要因为人工录入时的有误差。。。我以前用过的方法是,重复出现的地址先导出一个表,对只出现过一次的地址人工比对。。。

时间: 2024-11-17 19:08:23

excel 数据关联的相关文章

精彩:ASP导出Excel数据的四种方法

excel|导出excel|数据 一.使用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境.这种模式下,客户端工作站将在整个任务中分担很大的比重. <%Option Explic

excel 数据导入oracle中有哪些方法

问题描述 excel 数据导入oracle中有哪些方法 数据初始化时,很多excel文件上的数据需要导入到数据库中,不知道有一些什么好方法?目前,我是用程序导入的,但是速度肯定不如直接操作数据库,简单一点的表目前是弄了一个中间表,先讲数据导入到中间表,然后对一些字段进行处理,存储过程,讲数据复制到目标表中,但是,也存在一些问题,就是,如果想要查一个关联的id,返回多个的时候,需要把信息保存下来,但是本条数据不处理,相当于程序中的continue,还有异常的处理,父子关系,比如说,一个父对象,下面

循序渐进开发WinForm项目(5)--Excel数据的导入导出操作

随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我们每天面对的太多东西了,觉得很多都稀松平常了,即使很细微的地方,可能我们都已经形成习惯了.反过来,如果我们切换到其他领域,如IOS.android,那么开始我们可能对里面很多设计的规则不甚了解,开始可能也是一头雾水. 本篇继续上一篇<循序渐进开发WinForm项目(4)--Winform界面模块的集

ASP直接调用EXCEL数据的例子

excel|数据 例子: 在"c:\excel\book1.xls"存在一个EXCEL表book1.xsl,表的结构如下: 1 序号 名称 金额 2 1 张三 100 3 2 李四 200 4 3 王五 300 序号字段不为空 注意:excel 起始行是1而不是为0 <%@language=vbscript %> <% Set xlApp = server.CreateObject("Excel.Application") strsource =

ASP导出Excel数据的四种方法

excel|导出excel|数据 一.使用OWC 什么是OWC? OWC是Office Web Compent的缩写,即Microsoft的Office Web组件,它为在Web中绘制图形提供了灵活的同时也是最基本的机制.在一个intranet环境中,如果可以假设客户机上存在特定的浏览器和一些功能强大的软件(如IE5和Office 2000),那么就有能力利用Office Web组件提供一个交互式图形开发环境.这种模式下,客户端工作站将在整个任务中分担很大的比重. <%Option Explic

将Excel数据导入Access数据库

access|excel|数据|数据库 将Excel数据导入Access数据库   最近,有一些网友常常问到关于Execl数据库操作的问题,其中不少是关于"Excel数据导入Access "的问题.至于将Execl数据导入Access的方法有两种:一种是直接导入法:另一种是建立连接法.而我们在日常工作中用的最多的是直接导入法,限于篇幅,我这里就只讲直接导入法,希望能给大家带来参考. 具体操作可以按以下步骤进行: 1. 启动Microsoft Access2000: 2.  建立一个空数

做Excel数据简单的范例

excel|数据 一个打开Excel AP制作EXCEL数据的简单范例.   <?$excel = new COM("Excel.Application") or die("Unable to instanciate Excel"); $excel->Visible = 0; $book=$excel->Workbooks->Add;$book->Title="excel范例";$book->Subject=&

使用ASP与JAVASCRIPT配合实现多个复选框数据关联显示

作者:平凡点滴[一凡]<HTML><HEAD><META NAME="AUTHOUR" Content="DANNY KANG"><META NAME="CreateDate" Content="2004-10-28"><META NAME="Keywords" Content="DANNY KANG,DannyKang,DK,[D.K],pi

如何直接调用Excel数据?

excel|数据 <%@language=vbscript %><%Set exlApp = server.CreateObject("Excel.Application")strsource = "e:\excel\sample.xls"' 数据库位置Set exlstock = exlApp.Workstocks.Open(strsource)Set exlsheet = exlstock.Worksheets(1) i=1 response.