Foxtable(狐表)用户栏目专家坐堂 → foxtable如何设置excel的下拉框数据有效性?


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

主题:foxtable如何设置excel的下拉框数据有效性?

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


加好友 发短信
等级:幼狐 帖子:108 积分:1277 威望:0 精华:0 注册:2018/8/3 10:02:00
foxtable如何设置excel的下拉框数据有效性?  发帖心情 Post By:2019/10/20 19:06:00 [只看该作者]

foxtable如何设置excel的数据有效性?

最近一直在查询foxtable如何将下拉框设置到excel模板数据有效性中,都没有答案,这已经成为我不喜欢foxtable的主要原因了,有时真想要骂娘放弃foxtable,如果有这方面指导就太好了。



是因为excel是最基本的办公软件,录入数据方便,且使用的人数特别多。如果用excel模板采集好数据,再导入到foxtable开发的相应平台上,能给数据上报带来巨大的便利。foxtable功能强大,下拉框列表的选项功能,如果能生成到excel模板的数据有效性上,对于规范数据录入有重要的意义。



如foxtabel有一个在客户表和一个数据规范表,数据规范表用于保存各个下拉框列表的数据,有省份列、县市列、区号列、性别列、公司类别列等等,还会根据系统使用随时添加其他的用于下拉框的数据项,以满足系统能设置各种下拉框列表数据。


现在希望在foxtable里有一个导出模板按钮,点一下就可以根据客户表的属性设置,通过代码导出一个客户表的excel模板供大家用excel来填写,其中的省份列、县市列、区号列、性别列、公司类别列都设置了数据有效性,能从下拉框里选择数据项填写,内容就是来自foxtable的数据规范表的内容。



如果只能通过excel设置这个模板,再保存到项目的文件夹里面的,是很不现实的,因为每次在foxtable上调整一下客户的列属性或数据规范表的内容,都要用excel再设置一次模板,很不方便。如果能在foxtable上根据客户表的属性,自动调整生成excel模板的设置,就十分方便了。


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105475 积分:536366 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/20 20:46:00 [只看该作者]

参考

Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.OK Then
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.Workbook = App.WorkBooks.open(dlg.FileName)
        Dim ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        Dim rg As MSExcel.Range  = ws.Columns(2) ) '设置第二列
        Dim str As String = "选项1,选项2,选项3" '数据有效性的内容
        rg.Validation.Delete()
        rg.Validation.Add(MSExcel.XlDVType.xlValidateList, MSExcel.XlDVAlertStyle.xlValidAlertStop, MSExcel.XlFormatConditionOperator.xlNotBetween, str, Nothing)
        rg.Validation.InCellDropdown = True
        rg.Validation.IgnoreBlank = True

        Wb.Save
        Wb.Close
        App.Quit
    catch ex As Exception
        msgbox(ex.message)
        App.Quit
    End try
End If

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


加好友 发短信
等级:幼狐 帖子:108 积分:1277 威望:0 精华:0 注册:2018/8/3 10:02:00
EXCEL数据有效性的实现代码  发帖心情 Post By:2019/10/21 9:46:00 [只看该作者]

用下面的代码可以用,能在WorkSheets(1)的A1:A6里设置来自下拉框数据表省份列的内容。

 

Dim s As String  = DataTables("下拉框数据").SQLGetComboListString("省份")
s = s.Replace("|",",")
Dim App As New MSExcel.Application
App.Visible = True
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("c:\test.xlsx")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
With Ws.Range("A1:A6").Validation
  .Delete
  .Add(Type:=MSExcel.XlDVType.xlValidateList,  AlertStyle:=MSExcel.XlDVAlertStyle.xlValidAlertStop,  Operator:=MSExcel.XlFormatConditionOperator.xlBetween, Formula1:=s)
 End With

 

 

也可以用下面这一段:

 

Dim s As String  = DataTables("下拉框数据").SQLGetComboListString("省份")
    s = s.Replace("|",",")
 Dim App As New MSExcel.Application
     App.Visible = True
Dim Wb As MSExcel.Workbook = App.WorkBooks.Add
    Wb.WorkSheets(1).name = "hhh"   ‘ 为工作表起名为hhh
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
With Ws.Range("A1:A6").Validation
  .Delete
  .Add(Type:=MSExcel.XlDVType.xlValidateList,  AlertStyle:=MSExcel.XlDVAlertStyle.xlValidAlertStop,  Operator:=MSExcel.XlFormatConditionOperator.xlBetween, Formula1:=s)
 End With
  Wb.SaveAs("d:\123.xlsx")

 

[此贴子已经被作者于2019/10/21 13:32:31编辑过]

 回到顶部