首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 读取Excel时负数的问题 [已结帖,结帖人:repitile]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-08-20 12:54:33 楼主
    在读取Excel时,用OLEDB读取,获得一个数字字段,该字段是负数,在Excel里设置的是数字,格式是(12121.1211);读取出来应该为“-12121.1211”,结果却是“(12121.1211)”,无法转换为数字。奇怪的是同一个Excel中其它列也有这种负数的设置,却能正确地读取出负数来,而不是括号的字符串,达人指点一下。
    120  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 13:02:151楼 得分:0
    up
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • gisfarmer
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 14:04:432楼 得分:0
    检查Excel中的那个值,看是否正常。你也可以程序处理当出现()时把()处理掉。因为execl总会莫名其妙的出一些问题。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 14:37:363楼 得分:0
    没有发现异常;
    自己处理当然可以,但就是不希望这样,莫名其妙的
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • wlm1314
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 14:42:004楼 得分:0
    格式化下 select 语句中的 字段值
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • coldwinter_stone
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-20 14:55:375楼 得分:0
    两列完全一样吗? 负数的括号颜色是否一致?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-08-21 10:39:146楼 得分:0
    如何格式化,具体一点
    引用 4 楼 wlm1314 的回复:
    格式化下 select 语句中的 字段值
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • firedsky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 09:06:187楼 得分:0
    以字符串的形式读取excel中的数据比较好,读取后将数据转换成相应类型即可。稍微麻烦一点,但是能够避免一些因用户格式输入不规范引起的错误。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 10:05:138楼 得分:0
    是以字符串格式读的,问题是负数成了“(12121.1211)”的形式,没有道理,
    引用 7 楼 firedsky 的回复:
    以字符串的形式读取excel中的数据比较好,读取后将数据转换成相应类型即可。稍微麻烦一点,但是能够避免一些因用户格式输入不规范引起的错误。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jietuan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 10:13:159楼 得分:0
    excel 有时负数是用()表示的,你设置单元格格式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 10:18:5210楼 得分:0
    看清楚我的问题,excel中格式虽然可以设置为()形式,但是读数还是一个负数的。
    引用 9 楼 jietuan 的回复:
    excel 有时负数是用()表示的,你设置单元格格式
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hanyu0528
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 10:32:4611楼 得分:0
    EXCEL设置单元格式为文本,不要用()来表示负数,这样就没问题了吧~!还是你就是要用()来表示负数呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • kbryant
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-09-01 10:48:4712楼 得分:0
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 13:05:1213楼 得分:0
    数据源不是自己可以控制的,人家提供什么样的就什么样的
    引用 11 楼 hanyu0528 的回复:
    EXCEL设置单元格式为文本,不要用()来表示负数,这样就没问题了吧~!还是你就是要用()来表示负数呢?
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • JeffChung
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 13:30:4414楼 得分:0
    引用 12 楼 kbryant 的回复:
    帮顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mqcan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 13:42:4815楼 得分:0
    这个问题我遇到过,是因为excel是数字列
    楼主可以这样做:把那列设置为文本列就可以 了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • repitile
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 14:11:4916楼 得分:0
    嘿嘿,原始数据我这没法手工操作
    而且,问题的关键是有些列跟这列的设置完全一样,却可以读取,不知道有什么可能导致这种现象
    引用 15 楼 mqcan 的回复:
    这个问题我遇到过,是因为excel是数字列
    楼主可以这样做:把那列设置为文本列就可以 了
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hanyu0528
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 14:18:4117楼 得分:0
    引用 16 楼 repitile 的回复:
    嘿嘿,原始数据我这没法手工操作
    而且,问题的关键是有些列跟这列的设置完全一样,却可以读取,不知道有什么可能导致这种现象
    引用 15 楼 mqcan 的回复:
    这个问题我遇到过,是因为excel是数字列
    楼主可以这样做:把那列设置为文本列就可以 了

    那是很奇怪啊~!!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • firedsky
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-09-01 14:25:4418楼 得分:120
    如果是这样,那就不好分析了,excel有时是会出现莫名其妙的问题。我曾经碰到过一个读取错误,excel数据源是浮点数,如果连接时以文本形式读取,几百个数据中有一个特定的数读出来就会变成NULL;如果去掉这个文本形式读取连接参数,读出来就是正确的。查询SQL语句中是带ORDER BY条件的。我比较了下,如果把查询SQL语句中的ORDER BY条件去掉,那么以文本形式读取就是正确的。很难解释为什么。

    引用 8 楼 repitile 的回复:
    是以字符串格式读的,问题是负数成了“(12121.1211)”的形式,没有道理
    修改 删除 举报 引用 回复

    网站简介广告服务网站地图帮助联系方式诚聘英才English 问题报告
    北京创新乐知广告有限公司 版权所有 京 ICP 证 070598 号
    世纪乐知(北京)网络技术有限公司 提供技术支持
    Copyright © 2000-2008, CSDN.NET, All Rights Reserved