Foxtable(狐表)用户栏目专家坐堂 → 如何将addtable生成的表格转成excl并在手机上下载


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

主题:如何将addtable生成的表格转成excl并在手机上下载

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
如何将addtable生成的表格转成excl并在手机上下载  发帖心情 Post By:2018/10/8 12:28:00 [显示全部帖子]

With wb.AddTable("","Table1")
            .head.AddRow(cps).Attribute="style='font-size:20px;color:blue;white-space:nowrap;' align='center;'"
            For r As Integer=0 To lst.Count-1
                With .body.AddRow()
                    .addcell(r+1)
                    For Each nm As String In nms
                        .AddCell(lst(r)(nm))
                    Next
                End With
            Next
            .ActiveSheet = "menu"
        End With
        With wb.AddActionSheet("","menu")
            .Add("mnuEdit", "下载表格").Attribute =""
            .Add("mnuback","返回","",True).Attribute = ""
        End With


请问老师:如题

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/8 14:48:00 [显示全部帖子]

不懂,帮指导个示例,因为我这个AddTable("","Table1"是根据选择项目不同生成的,内容不固定,我的想法是能不能提出生成的表的行列来填充excel

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/9 22:14:00 [显示全部帖子]

  Dim Book As New XLS.Book '定义一个Excel工作簿
        Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
        With wb.AddTable("","Table1")
            .head.AddRow(cps).Attribute="style='font-size:20px;color:blue;white-space:nowrap;' align='center;'"
            Dim i As Integer=0
            For Each cp As String In cps '添加列标题
                Sheet(0, i).Value = cp
                i=i+1
            Next
            For r As Integer=0 To lst.Count-1
                With .body.AddRow()
                    .addcell(r+1)
                    Sheet(r +1, 0).Value = r+1
                    Dim j As Integer=1
                    For Each nm As String In nms
                        .AddCell(lst(r)(nm))
                        Sheet(r +1, j).Value = lst(r)(nm)
                        j=j+1
                    Next
                End With
            Next
            .ActiveSheet = "menu"
        End With
        Book.Save("c:\reports\test.xls")
        With wb.AddActionSheet("","menu")
            .Add("mnuEdit", "下载表格").Attribute =""
            .Add("mnuback","返回","",True).Attribute = ""
        End With
        wb.AppendHTML("<style>.fox_table th{border: 1px solid black} .fox_table td{border: 1px solid black}</style>")
    Else
        With wb.AddMsgPage("","msgpage","学段和考试名称为必选内容", "班级全称为空则查看该次考试所有记录") '生成成功提示页
            '  .AddButton("btn1","知道了","javascript:history.back()").Attribute = "style='border:1px solid black;border-radius:20px;padding:0px;"
            .icon="warn"
            Dim bt1=.AddButton("btn1","知道了,谢谢","javascript:history.back()")
            bt1.kind=1
            bt1.Attribute = "style='border:1px solid black;border-radius:20px;padding:0px;width:50%;'"
        End With
    End If
    e.WriteString(wb.Build)
    e.Handled = True
End If


老师,你好我按上面,测试了存的文件是有了,现在如何在点菜单时下载,这个怎么写呢,另外如果放在服务器上,大家看都存这个文件,那不后来的就会履盖前面的这个文件,到时下载不就出问题了,这怎么做更好

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/9 22:29:00 [显示全部帖子]

 .Add("mnuEdit", "下载表格").Attribute =""

这个直接写文件名吗?

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/9 23:04:00 [显示全部帖子]


用标签的方式:这样是可以的
 wb.InsertHTML("<a href='http://47.92.95.135/xzwj/test.xls' >点击下载</a>")  

我想请教
在菜单上
 .Add("mnuEdit", "下载表格").Attribute =" 这个填地址不行呢"

该怎么写

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/12 19:20:00 [显示全部帖子]

 Dim Book As New XLS.Book '定义一个Excel工作簿
        Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
        With wb.AddTable("","Table1")
            .head.AddRow(cps).Attribute="style='font-size:20px;color:blue;white-space:nowrap;' align='center;'"
            Dim i As Integer=0
            For Each cp As String In cps '添加列标题
                Sheet(0, i).Value = cp
                i=i+1
            Next
            For r As Integer=0 To lst.Count-1
                With .body.AddRow()
                    .addcell(r+1)
                    Sheet(r +1, 0).Value = r+1
                    Dim j As Integer=1
                    For Each nm As String In nms
                        .AddCell(lst(r)(nm))
                        Sheet(r +1, j).Value = lst(r)(nm)
                        j=j+1
                    Next
                End With
            Next
            With .body.AddRow()
                For Each cp As String In cps
                    .AddCell(cp,"style='font-size:20px;color:blue;white-space:nowrap;' align='center;'")
                Next
            End With
            If e.PostValues("tj")="on"
                Dim bjlists As List(of String) = DataTables("成绩").sqlGetValues("班级全称", "[单位名称] = '" & e.Cookies("userdw") & "' and 学段 ='" & e.PostValues("xd") & "' and 考试名称 = '" & e.PostValues("ksmc") & "'")
                wb.AppendHTML("<style>.mark{background-color:red; color:white;}</style>", True) '添加样式
                
                For Each bjList As String In bjlists
                    With .body.AddRow()
                        .AddCell(bjlist & "平均分","colspan='4' style='color:blue;text-align:center;'")
                        For Each js As String In jss
                            Dim xs As String = format(DataTables("成绩").sqlCompute("Avg(" & js & ")","[单位名称] = '" & e.Cookies("userdw") & "'And [考试名称] = '" & e.PostValues("ksmc") & "' and [班级全称] = '" & bjlist & "' and 学段= '" & e.PostValues("xd") & "'"),"#.00")
                            If bjlist = e.PostValues("bjqc")
                                .addcell(xs,"style='color:blue;'")
                            Else
                                .addcell(xs)
                            End If
                        Next
                        .AddCell(" ","colspan='3'")
                    End With
                Next
            End If
            .ActiveSheet = "menu"
        End With
        
        'Book.Save("c:\web\xzwj\" & e.Cookies("username") & "\ " & e.Cookies("ksmc") & e.Cookies("bjqc") & ".xls")
        Book.Save("c:\web\xzwj\" & e.Cookies("username") & "\成绩表.xls")
老师,按照你的指导,我现在这样做成了下载表格,但现在还有几个问题:

1、能不能生成table1后提取table1行和列的值来填充,这样更效率更高,需要时才生成表导出,不需要不就生成导出。
2、Book.Save("c:\web\xzwj\" & e.Cookies("username") & "\成绩表.xls")生成的表在下载的时候,如果首次下载,通知栏有提示,如果再下载由于文件名相同就没提示,并且下载的文件不履盖前面的文件,要删了上次下载的文件才能有提示并是新的内容.怎么能实现下载的文件履盖前面的文件。
3、如何能在下载后就自动打开excl文件,现在测试情况是要到下载管理中找到文件再打开。

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/18 20:54:00 [显示全部帖子]

老师,我想在CreateFromDataTable(DataTable)生成的表 后做一下截功能,我看有取得表格单元格的值,如何计算得到表格的总行数和总列数,然后用
循环来填允EXCEL

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


加好友 发短信
等级:八尾狐 帖子:1959 积分:15051 威望:0 精华:0 注册:2016/4/28 9:58:00
  发帖心情 Post By:2018/10/18 21:10:00 [显示全部帖子]

对,我就是问如何取得生成的table1的行数和列数

 回到顶部