Foxtable(狐表)用户栏目专家坐堂 → [求助]导入EXCEL问题


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

主题:[求助]导入EXCEL问题

帅哥哟,离线,有人找我吗?
建筑人生
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
[求助]导入EXCEL问题  发帖心情 Post By:2014/10/14 22:44:00 [只看该作者]

Dim dlg As New OpenFileDialog '定义一个新的OpenFileDialog
dlg.Filter = "Excel文件|*.xls"
If dlg.ShowDialog = DialogResult.OK Then '如果用户单击了确定按钮
    Dim Book As New XLS.Book(dlg.FileName)
   
    Dim Sheet As XLS.Sheet = Book.Sheets(0)

  Tables("水卫工程量").StopRedraw()
    Dim sts() As String = { "分项工程名称","楼层_名称","楼层_数量","构件_名称","构件_数量","构件_型号规格","管道_计算公式","管道_小计","管道_合计","备注","管道油漆特征_除锈","管道油漆特征_底漆","管道油漆特征_面漆","土方_埋地","土方_埋地深度","土方_特征","土方_长度","油漆面积_基数","油漆面积_除锈","油漆面积_底漆","油漆面积_面漆","支架_基数","支架_合计kg","备忘录" }
   
    SystemReady = False  '关闭刷新
    Try
        'Tables("水卫工程量").AddNew '先添加第一行 标注行
        For x As Integer = 2 To Sheet.Rows.Count -1
            Dim r As Row = Tables("水卫工程量").AddNew '添加2行
           
           
            For y As Integer = 0 To sts.Length -1
               
                r(sts(y)) = sheet(x,y).text
               
            Next
        Next


    Catch ex As Exception
        MessageBox.Show("计算错误")
    End try
    SystemReady = True  '关闭刷新
End If

以上代码导入数值列或字符列没有问题,逻辑列出现错误,不知道怎么写代码

[此贴子已经被作者于2014-10-14 22:46:22编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/14 22:47:00 [只看该作者]

 判断

 

For x As Integer = 2 To Sheet.Rows.Count -1
    Dim r As Row = Tables("水卫工程量").AddNew '添加2行
   
   
    For y As Integer = 0 To sts.Length -1
        If Tables("水卫工程量").Cols(sts(y)).IsBoolean Then
            If sheet(x,y).text = "true" Then
                r(sts(y)) = True
            Else
                r(sts(y)) = False
            End If
        Else
            r(sts(y)) = sheet(x,y).text
        End If
       
    Next
Next


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


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/10/14 22:49:00 [只看该作者]

谢谢

 


 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  4楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/10/14 23:00:00 [只看该作者]

以下是引用有点甜在2014-10-14 22:47:00的发言:

 判断

 

For x As Integer = 2 To Sheet.Rows.Count -1
    Dim r As Row = Tables("水卫工程量").AddNew '添加2行
   
   
    For y As Integer = 0 To sts.Length -1
        If Tables("水卫工程量").Cols(sts(y)).IsBoolean Then
            If sheet(x,y).text = "true" Then
                r(sts(y)) = True
            Else
                r(sts(y)) = False
            End If
        Else
            r(sts(y)) = sheet(x,y).text
        End If
       
    Next
Next

现在文件可以导进来了,但逻辑列没有赋值,没有道理啊

 

[此贴子已经被作者于2014-10-14 22:59:52编辑过]

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


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/10/14 23:16:00 [只看该作者]

甜大师,在吗,为什么不能赋值啊

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  6楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/10/14 23:32:00 [只看该作者]

 

For x As Integer = 2 To Sheet.Rows.Count -1
    Dim r As Row = Tables("水卫工程量").AddNew '添加2行
   
   
    For y As Integer = 0 To sts.Length -1
        If Tables("水卫工程量").Cols(sts(y)).IsBoolean Then
            If sheet(x,y).text = true Then
                r(sts(y)) = True
            Else
                r(sts(y)) = False
            End If
        Else
            r(sts(y)) = sheet(x,y).text
        End If
       
    Next
Next

 

解决了,不能当字符,要按逻辑才行,谢谢甜大师


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/10/14 23:41:00 [只看该作者]

 你excel的逻辑列,是字符还是什么?你msgbox看看。

 回到顶部
帅哥哟,离线,有人找我吗?
建筑人生
  8楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:341 积分:3410 威望:0 精华:0 注册:2014/8/20 20:14:00
  发帖心情 Post By:2014/10/15 0:09:00 [只看该作者]

以下是引用有点甜在2014-10-14 23:41:00的发言:
 你excel的逻辑列,是字符还是什么?你msgbox看看。

我也觉得是字符,但不知道为什么把“”去掉就可以导进去且可以赋值,请大师指点


 回到顶部