Foxtable(狐表)用户栏目专家坐堂 → Excel报表返回列数不正确


  共有2129人关注过本帖树形打印复制链接

主题:Excel报表返回列数不正确

美女呀,离线,留言给我吧!
youkacard
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
Excel报表返回列数不正确  发帖心情 Post By:2015/5/30 15:16:00 [只看该作者]

Dim Open As New OpenFileDialog
Open.Title = "导入数据表格"
Open.Filter = "97-2003 Excel文件|*.xls|Excel工作簿|*.xlsx"
If Open.ShowDialog = DialogResult.OK Then
    Dim Book As New XLS.Book(Open.FileName) '定义一个报表
    Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用第一个表
    Dim r As Integer = Sheet.Rows.Count '返回总行数
    Dim c As Integer = Sheet.Cols.Count '返回总列数
    MessageBox.Show(r & "|" & c)
End If

我有个表格文件,其中97-2003和2007格式的,返回列数都不一样,都不正确,是我代码有问题吗?

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/5/30 15:18:00 [只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20150530151710.jpg
图片点击可在新窗口打开查看
行数正确,列数不对,没有那么多列的
[此贴子已经被作者于2015/5/30 15:17:49编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/30 15:20:00 [只看该作者]

选择右边空白的列.然后删除.就好了.

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/5/30 15:23:00 [只看该作者]

版主,我删除了还是显示256列,空白的也算?
[此贴子已经被作者于2015/5/30 15:23:03编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/30 15:25:00 [只看该作者]

有些特殊的操作,或者某些软件导出的表格,是会增加大量的空白列的.

一般来说手动删除没问题就是这个原因了

你可以用代码排除,IF判断一下列名是否为空,或者列内容是否为空.是空就 Exit FOR 退出循环就好了

 回到顶部
美女呀,离线,留言给我吧!
youkacard
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:269 积分:1847 威望:0 精华:0 注册:2014/11/9 21:57:00
  发帖心情 Post By:2015/5/30 16:19:00 [只看该作者]

为什么我获取单元格内容老是提示 字符串“” 无法转为 integer 我都用了Cint转换了  并且单元格内容确实是纯数字

 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2015/5/30 16:24:00 [只看该作者]

你有空值的情况

空值是Cint不了的.
 
判断一下. IF XX<>"" then   判断一下不是空值再执行转换和赋值代码

 回到顶部