求助!c#怎么判断excel表里的数据和datagridview里的标题数据相等

问题描述

当我用这句代码if(xlsheet3.Cells[1,j]==(dt.Columns[i].HeaderText))来判断excel表里的字段是否等于datagridview控件里的标题字段时,得到的结果都是不等于,但是它们是有共同字段的。这句话警告我要把左边的转换成string类型,但是转换过后还是没得相等的情况,求求各位大神,怎么才能让它们出现相等的情况!!这是datagridview里的标题字段这是excel表里的字段

解决方案

解决方案二:
把excel中的数据也读取成datatable,对比这2个datatable。网上都有代码
解决方案三:
读取,根据规则匹配,转换为字符串再去除空格后比较
解决方案四:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的
解决方案五:
引用1楼duanzi_peng的回复:

把excel中的数据也读取成datatable,对比这2个datatable。网上都有代码

我后面还要把datagridview里的数据读取到excel与之对应的字段下,这样也可以吗
解决方案六:
引用3楼lqyyawq的回复:

你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿
解决方案七:
引用2楼changjiangzhibin的回复:

读取,根据规则匹配,转换为字符串再去除空格后比较

大神,能具体点嘛,我现在就是要把datagridview里面的数据导出到excel对应的字段下面
解决方案八:
引用5楼baidu_30536197的回复:

Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了
解决方案九:
引用7楼lqyyawq的回复:

Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令
解决方案十:
引用8楼baidu_30536197的回复:

Quote: 引用7楼lqyyawq的回复:
Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令

我自己试了一下stringa=sheet.Cells[1,1].Value是可以顺利读取的。而且我的程序里sheet.Cells[1,1]显示的是dynamic类型。
解决方案十一:
引用9楼lqyyawq的回复:

Quote: 引用8楼baidu_30536197的回复:
Quote: 引用7楼lqyyawq的回复:
Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令

我自己试了一下stringa=sheet.Cells[1,1].Value是可以顺利读取的。而且我的程序里sheet.Cells[1,1]显示的是dynamic类型。

哎,我的怎么就不行呢,会不是是Xlsheet3这个的原因啊,我的xlsheet3=xlbook.Sheets[3]asMicrosoft.Office.Interop.Excel.Worksheet;
解决方案十二:
引用10楼baidu_30536197的回复:

Quote: 引用9楼lqyyawq的回复:
Quote: 引用8楼baidu_30536197的回复:
Quote: 引用7楼lqyyawq的回复:
Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令

我自己试了一下stringa=sheet.Cells[1,1].Value是可以顺利读取的。而且我的程序里sheet.Cells[1,1]显示的是dynamic类型。

哎,我的怎么就不行呢,会不是是Xlsheet3这个的原因啊,我的xlsheet3=xlbook.Sheets[3]asMicrosoft.Office.Interop.Excel.Worksheet;

这样吧,你别用.Value。你用.Text再试试。
解决方案十三:
引用11楼lqyyawq的回复:

Quote: 引用10楼baidu_30536197的回复:
Quote: 引用9楼lqyyawq的回复:
Quote: 引用8楼baidu_30536197的回复:
Quote: 引用7楼lqyyawq的回复:
Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令

我自己试了一下stringa=sheet.Cells[1,1].Value是可以顺利读取的。而且我的程序里sheet.Cells[1,1]显示的是dynamic类型。

哎,我的怎么就不行呢,会不是是Xlsheet3这个的原因啊,我的xlsheet3=xlbook.Sheets[3]asMicrosoft.Office.Interop.Excel.Worksheet;

这样吧,你别用.Value。你用.Text再试试。

一样的,不知道为什么我的xlsheet3.Cells[1,j]返回类型是Object,所以根本没得那些属性,难道是我缺少using引用了?
解决方案十四:
引用12楼baidu_30536197的回复:

Quote: 引用11楼lqyyawq的回复:
Quote: 引用10楼baidu_30536197的回复:
Quote: 引用9楼lqyyawq的回复:
Quote: 引用8楼baidu_30536197的回复:
Quote: 引用7楼lqyyawq的回复:
Quote: 引用5楼baidu_30536197的回复:
Quote: 引用3楼lqyyawq的回复:
你先设置一个断点,人工看看它的数据是不是确实是一样的,如果不一样就是程序中出了问题了,否则应该不会发生这种事的

我已经试过了,比如说xlsheet3.Cells[1,j]的值确实是FID,但是类型和后面的dt.Columns[i].HeaderText类型不一样,提示xlsheet3.Cells[1,j]要转换成string类型,我转换成xlsheet3.Cells[1,j].ToString()后的值就变成Object_Com什么的玩意儿

你在Cells后面加上.Value。例如if(xlsheet3.Cells[1,j].Value==(dt.Columns[i].HeaderText))就可以读出来了

我试了啊,但是它报错了,说什么object不存在Value的方法或属性,缺少using指令

我自己试了一下stringa=sheet.Cells[1,1].Value是可以顺利读取的。而且我的程序里sheet.Cells[1,1]显示的是dynamic类型。

哎,我的怎么就不行呢,会不是是Xlsheet3这个的原因啊,我的xlsheet3=xlbook.Sheets[3]asMicrosoft.Office.Interop.Excel.Worksheet;

这样吧,你别用.Value。你用.Text再试试。

一样的,不知道为什么我的xlsheet3.Cells[1,j]返回类型是Object,所以根本没得那些属性,难道是我缺少using引用了?

我也不清楚为什么你的是Object类型,我的是dynamic类型,所以可以通过编译。这样吧,你强制转换一下。stringa=((Microsoft.Office.Interop.Excel.Range)sheet.Cells[1,1]).Text如何还不行我也没辙了。

时间: 2024-09-10 16:07:13

求助!c#怎么判断excel表里的数据和datagridview里的标题数据相等的相关文章

excel表-C# 根据现成Excel表里面的数据生成jpg图片,有什么好的方法?

问题描述 C# 根据现成Excel表里面的数据生成jpg图片,有什么好的方法? 已经生成了Excel表, 想再根据这个表生成jpg图片,OWC11可以吗?还有没有其他方法?谢谢! 解决方案 生成什么图片,是统计图,还是什么,说清楚 解决方案二: 如果你有数据,最高效简单的办法就是直接产生图表,和excel无关.比如用microsoft chart控件.

sql server 怎么判断一个表里面的字段拆分之后是否可以在另一个表的字段里面查到数据

问题描述 sql server 怎么判断一个表里面的字段拆分之后是否可以在另一个表的字段里面查到数据 其中F_Split是分割以逗号连接的字符串的方法 怎么判断string字段拆分之后的数据是否能在@a表中的id字段找到对应的记录 insert into @a(idname)values(1'A')insert into @a(idname)values(2'B')insert into @a(idname)values(3'C')select * from @ainsert into @c(s

求助!怎么把数据库表里的数据读出来放到.txt文件中!列名也显示读出来!

问题描述 求助!怎么把数据库表里的数据读出来放到.txt文件中!列名也显示读出来!这样怎么实现!idnamesex1张三男2李四男3王五女求助急求谢谢!大侠们指教下!谢谢! 解决方案 解决方案二:去看看jdbc和io解决方案三:该回复于2011-05-05 15:29:56被版主删除解决方案四:什么数据库你是要做一个导出的功能还是只是手工导出一些数据解决方案五:支持一楼!

poi处理excel-小白求助:poi生成excel速度过慢问题,该怎么优化

问题描述 小白求助:poi生成excel速度过慢问题,该怎么优化 package poiMain; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.text.DateFormat; import java.text.DecimalFormat; import java.text.S

poi excel 排序-小白求助:poi排序excel的问题

问题描述 小白求助:poi排序excel的问题 怎么让生成出来的excel,按规则排序 我的程序是读取指定excel,然后一行一行的读,一行一行的生成excel. 但生成的excel需要排序,我只能再写一个方法,读我生成的excel,再生成一个排序好的excel 解决方案 题主要按照什么排序呢?你先把数据从excel中拿出来,后根据需要进行排序就好了嘛. 解决方案二: 在你的生成Excel的方法前面加上你所需要的排序方法

excel表-poi如何判断excel单元格为合并单元格

问题描述 poi如何判断excel单元格为合并单元格 今天在用poi读取excel表格的时候发现使用cell.getArrayFormulaRange()并不能返回这个单元格的边界.请问该如何判断单元格为合并单元格并获取合并单元格的行数列数

实现删除主表数据时, 判断与之关联的外键表是否有数据

问题描述:某个基础信息表,与系统中30多个表存在外键关系,当删除基础数据时,需要判断是否已经被用过,如果用过则更改标志位,如果没有用过则直接删除,如何能很好实现这个处理?最好能够自动适应表的变化 问题解决(SQL Server 2005)-- SQL Server 2005的错误处理容易控制, 因此, SQL Server 2005中可以直接删除, 通过错误处理来确定是否需要更新. -- 示例如下.USE tempdbGO CREATE TABLE m(    id int PRIMARY KE

C# Excel检验数据是否重复及Table检验数据是否重复

最近在做导入Excel数据的时候,要检验数据是否重复: 1.要检验Excel数据本身是否有重复? 2.Excel中的数据是否与数据库中的数据重复? 一.检验Excel中数据是否重复的方式有: 1.将Table中的数据使用select语句来过滤(此处略,可以参考二). 2.使用for循环来手动核对,代码如下: #region 记录Excel中的重复列 /// <summary> /// 记录Excel中的重复列 /// </summary> /// <param name=&q

按Excel单元格中的字体颜色对表格数据进行排序

  按Excel单元格中的字体颜色对表格数据进行排序           下图中产品名称列有四种不同的颜色,按照自己需要的颜色序列,例如"灰色-绿色-蓝色-红色"进行排序. 1.选中表格中的任一单元格,切换到"数据"选项卡,在"排列和筛选"组中单击"排序"按钮. 2.弹出"排序"对话框,设置主要关键字为产品名称,排序依据为字体颜色.我们现在单击次序中颜色右侧的下拉按钮,会显示表格中这一列出现过的所有颜色,选