Foxtable(狐表)用户栏目专家坐堂 → [求助]导出Excel的文件的设置筛选器代码


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

主题:[求助]导出Excel的文件的设置筛选器代码

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
[求助]导出Excel的文件的设置筛选器代码  发帖心情 Post By:2019/5/10 11:16:00 [只看该作者]

老师好。
[此贴子已经被作者于2019/5/10 11:41:31编辑过]

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


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

我测试没问题

 

Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xlsx" '设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
     Tables("表A").SaveExcel(dlg.FileName, "表A")  '保存文件
End If


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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/5/10 11:43:00 [只看该作者]

谢谢老师,可能是我的原因,现在问题不存在了。

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


加好友 发短信
等级:一尾狐 帖子:493 积分:3637 威望:0 精华:0 注册:2018/6/8 21:14:00
  发帖心情 Post By:2019/5/10 16:28:00 [只看该作者]

老师好。下面的代码完全是帮助文档中的,但如果将“设置筛选器”dlg.Filter= "Excel文件|*.xls" 中的“*.xls”改为“*.xlsx”后再在“命令窗口”执行导出,则导出后的文件打不开,提示如附图。
Dim dt As Table = Tables("订单")

Dim nms() As String = {"产品","客户","数量","单价","金额","日期"} '要导出的列名
Dim
caps() As String = {"产品名称","用户名称","数量","单价","金额","日期"} '对应的列标题
Dim
szs() As Integer = {100,100,80,80,80,120} '对应的列宽
Dim
Book As New XLS.Book '定义一个Excel工作簿
Dim
Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Dim
st As XLS.Style = Book.NewStyle '日期列的显示格式
st
.Format = "yyyy-MM-dd"
For
c As Integer = 0 To nms.length -1
    Sheet(0, c).Value = caps(c)
'指定列标题
    Sheet.Cols(c).Width = szs(c)
'指定列宽
    If dt.Cols(nms(c)).IsDate Then '
如果是日期列
        Sheet.Cols(c).Style = st '
设置显示格式
    End If

Next
For
r As Integer = 0 To dt.Rows.Count - 1 '填入数据
    For c As Integer = 0 To nms.length -1
        Sheet(r +1, c).Value = dt.rows(r)(nms(c))
    Next

Next
Dim
dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg
.Filter= "Excel文件|*.xls" '设置筛选器
If
dlg.ShowDialog = DialogResult.Ok Then
    Book.Save(dlg.FileName)
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()

End
If



图片点击可在新窗口打开查看此主题相关图片如下:qq截图20190510162618.jpg
图片点击可在新窗口打开查看


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


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

用 XLS.Book 处理的文件,只能存放为 xls。

 

为什么一定要存储为xlsx?如果确实需要这个功能,用vba另存一下xls文件,如

 

Dim dlg As new OpenFileDialog
dlg.Filter = "excel|*.xls"
If dlg.ShowDialog = DialogResult.OK Then
    Dim App As New MSExcel.Application
    app.DisplayAlerts = False
    Dim Wb As MSExcel.Workbook = App.WorkBooks.Open(dlg.FileName)
    Wb.SaveAs(Filename:=dlg.FileName, FileFormat:=MSExcel.XlFileFormat.xlExcel9795)
    wb.close
    app.quit
End If

 

 


 回到顶部