表格比对作业指导书 使用access对excel表格数据进行比对

初级代码游戏的专栏介绍与文章目录-CSDN博客

(注:这是以前给秘书写的作业指导书,用来处理两个表格中哪些人存在、哪些人不存在。看起来当时使用的access版本是2016。access是微软office套件中的一个软件,存在于家庭版,个人版并不包括。access是个奇怪的存在:没什么新增用户,但有一批死忠足以维持它的存在)

表格比对作业指导书

使用access对excel表格数据进行比对

1 目标

比较不同的excel表格的数据,找出两个表的数据差异。

根据相同关键字合并两张表的数据。

2 步骤

序号

步骤

要点

1

新建access数据库

2

整理第一张excel表格

另存一份,删去标题、汇总和附加的东西

3

导入第一张excel表格

4

检查导入结果

数据量、字段内容是否正确

5

导入第二张excel表格

重复2、3、4步

6

设计查询

7

运行查询

8

保存结果到excel

3 详解

3.1 新建access数据库

在桌面点击右键-》【新建】-》【Microsoft Access Database】

3.2 整理excel表格

首先将原始文件复制一份,在副本上操作以免破坏原始数据。

打开副本excel

删除不规范的内容:

         标题行

         汇总行

         表格以外的附加内容

只保留表格列头和数据

如果没有列头加上列头

如有折叠取消折叠

如有太多不需要的列可以删除

保存并关闭副本

3.3 导入excel表格

打开access文件

选择【外部数据】-》【新数据源】-》【从文件】-》【Excel】

         选择整理好的excel副本,选项为“将源数据导入到当前数据库的新表中”

         点击确定进入下一步

         选择要导入的工作表

         点击下一步继续

         选中第一行包含列标题

         点击下一步继续

       选择每个列的数据类型,由于excel表格的随意性,建议选择“短文本”以保持数据的原始状态。

         注意:默认识别为数值、日期类型的可能会发生转换错误或因为精度而改变数值!

         确认无误再点击下一步继续

         选择“让Access添加主键”(因为excel表格经常有各种重复和错误)

         点击下一步继续

         输入表名

点击完成

         点关闭结束向导

3.4 检查结果

在access中打开刚才导入的表

         与excel的数据进行比对:

                   记录数是否一致

                   每个字段是否正确,特别是长数字串

3.5 导入第二张表

重复第一张表的步骤

3.6 设计查询

在access中点击【创建】-》【查询设计】

 

按住ctrl键选中要比对的两张表

点击添加

点击关闭

         用鼠标拖动来建立一个关联关系,关联关系是两个表中要比对的列

         拖动完成后两个列之间出现一条连接线

         小心地在连接线上点击鼠标右键,注意,线很细,不容易选中

         点击【连接属性】

         确认两个表和列无误

连接属性下面有三个选项

  1. 选择出两个表都有的行,只在一张表有的行不要
  2. 第一张表的全部显示,这样可以找出哪些在第二张表里面没有
  3. 第二张表的全部显示,这样可以找出哪些在第一张表里面没有

注意,如果想要两张表的数据都显示,只能做两个查询,分别选择2、3

点确定关闭

然后在下部选择要显示的列

         下拉列表中列出了所有的列,Sheet1.*代表Shee1的所有列,选择两个表的所有列或者根据需要选择特定的列,为了比对方便可以把重要的列放在前面

         保存查询,在查询的标签上点击右键保存,然后关闭

3.7 执行查询

在access左侧双击查询名称

         获得查询结果

         显示出了Sheet1的所有数据,Sheet2则只显示col1和列1相同的数据

         想知道哪些数据没有匹配上,在列头上点击向下的三角

         选择排序,这样就可以把空白列排在最前或最后

3.8 保存结果到excel

在access左边查询名称上点右键

3.9 忽略空格

如果文本列包含多余的空格,则需要修改sql语句来忽略空格

例如,一张表的数据为“aaa”,另一张表为“ aaa”,前面多了一个空格,比较的时候会被认为不相同,这就不能获得想要的结果,必须修改查询来解决

在查询视图中的空白处点击右键,选择【SQL视图】

直接修改SQL语句,对需要忽略空格的列增加trim

Trim()函数的功能为删除数据两边的空白

注意,修改后的SQL可能不再为设计视图所支持

  • 27
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在C#中,可以使用ADO.NET来读取和操作表格数据。如果需要比对两张导入的表格数据,可以采用以下步骤: 1. 使用ADO.NET连接到两张表格数据源,可以使用OleDbConnection或SqlClientConnection对象。 2. 使用OleDbDataAdapter或SqlDataAdapter对象分别填充两张表格数据到DataTable对象中。 3. 使用LINQ查询或循环语句比对两个DataTable对象中的数据,可以通过比较每个数据行的列值,来判断数据是否一致。 4. 根据比对结果进行处理,例如输出差异信息或更新数据等。 下面是一个简单的示例代码,演示如何比对两个Excel表格中的数据: ```csharp using System.Data; using System.Data.OleDb; //连接Excel文件 string connStr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=table1.xlsx;Extended Properties=\"Excel 12.0;HDR=YES;\""; OleDbConnection conn1 = new OleDbConnection(connStr); conn1.Open(); //填充数据到DataTable string sql1 = "SELECT * FROM [Sheet1$]"; OleDbDataAdapter da1 = new OleDbDataAdapter(sql1, conn1); DataTable dt1 = new DataTable(); da1.Fill(dt1); //连接第二个Excel文件 string connStr2 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=table2.xlsx;Extended Properties=\"Excel 12.0;HDR=YES;\""; OleDbConnection conn2 = new OleDbConnection(connStr2); conn2.Open(); //填充数据到DataTable string sql2 = "SELECT * FROM [Sheet1$]"; OleDbDataAdapter da2 = new OleDbDataAdapter(sql2, conn2); DataTable dt2 = new DataTable(); da2.Fill(dt2); //比对数据 foreach (DataRow row1 in dt1.Rows) { //查找相同的数据行 DataRow[] rows2 = dt2.Select("ID=" + row1["ID"]); if (rows2.Length == 1) { DataRow row2 = rows2[0]; //比较列值 if (row1["Name"].ToString() != row2["Name"].ToString() || row1["Age"].ToString() != row2["Age"].ToString()) { //输出差异信息 Console.WriteLine("Row {0} is different.", row1["ID"]); } } else if (rows2.Length == 0) { //输出缺失信息 Console.WriteLine("Row {0} is missing in table2.", row1["ID"]); } } conn1.Close(); conn2.Close(); ``` 注意,以上代码只是一个示例,实际应用中需要根据具体情况进行调整和优化。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值