以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助] XLS.Book 是不是只能用 xls 而不能用 xlsx 格式 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=176421) |
-- 作者:zhutangxin -- 发布时间:2022/4/12 20:20:00 -- [求助] XLS.Book 是不是只能用 xls 而不能用 xlsx 格式 老师您好。 XLS.Book 是不是只能用 xls 而不能用 xlsx 格式? 我试着保存为 xlsx格式的Excel,保存后,Excel打不开。
|
-- 作者:有点蓝 -- 发布时间:2022/4/12 20:33:00 -- 打开的是xls 格式的文档,也必须要保存为xls 格式的文档。 打开的是xlsx格式的文档,也必须要保存为xlsx格式的文档。 不能打开xls 格式的文档,然后保存为xlsx格式的文档;反之亦然
|
-- 作者:zhutangxin -- 发布时间:2022/4/13 0:20:00 -- 追问 在移动端 e.WriteBook() 方法,由于没有先打开Excel文件,而是生成的,保存的时候可以存成 .xlsx 格式吗?即是否可以保存为 "订单.xlsx"?
e.WriteBook() 的帮助页如下: http://www.foxtable.com/mobilehelp/topics/0148.htm Case "orders.htm" \'请求的是网页,返回的是Excel文件 Dim nms() As String = {"产品","客户","数量","单价","金额","日期"} Dim cmd As New SQLCommand cmd.ConnectionName = "数据源名称" cmd.CommandText = "Se lect 产品, 客户, 数量, 单价, 数量 * 单价 As 金额, 日期 From {订单} Where 日期 = #" & Date.Today & "#" Dim dt As DataTable = cmd.ExecuteReader Dim Book As New XLS.Book Dim Sheet As XLS.Sheet = Book.Sheets(0) For c As Integer = 0 To nms.Length - 1 Sheet(0, c).Value = nms(c) Next For r As Integer = 0 To dt.DataRows.Count - 1 For c As Integer = 0 To nms.Length - 1 Sheet(r + 1, c).Value = dt.Datarows(r)(nms(c)) Next Next book.PreBuild = False \'非报表模请将PreBuild 属性设置为False e.WriteBook(book,"订单.xls",True) |
-- 作者:有点蓝 -- 发布时间:2022/4/13 8:31:00 -- 可以的 |
-- 作者:zhutangxin -- 发布时间:2022/4/13 11:05:00 -- 改了之后Excel打不开,报如下错误。 |
-- 作者:zhutangxin -- 发布时间:2022/4/13 11:07:00 -- 直接将上图中的 Excel 文件后缀改成 .xls 后就可以打开了 |
-- 作者:zhutangxin -- 发布时间:2022/4/13 11:08:00 -- 代码如下: Dim Book As New XLS.Book \'单元格样式 Dim Style As Xls.Style = book.NewStyle \'新建一个样式 Style.Font = new font("Arial",9, FontStyle.Regular) \'Style.AlignHorz = XLS.AlignHorzEnum.Center \'居中 Style.AlignVert = XLS.AlignVertEnum.Center \'居中 Style.WordWrap = True \'标题样式 Dim StyleHead As Xls.Style = book.NewStyle \'新建一个样式 StyleHead.Font = new font("Arial",9, FontStyle.Bold) StyleHead.ForeColor = Color.White StyleHead.BackColor = Color.Gray StyleHead.AlignHorz = XLS.AlignHorzEnum.Center \'居中 StyleHead.AlignVert = XLS.AlignVertEnum.Center \'居中 Dim Sheet As XLS.Sheet = Book.Sheets(0) Sheet.Rows.Frozen = 2 Dim nms() As String = dcs.ToArray() Dim enNms() As String = enNames.ToArray() Dim width() As Integer = widths.ToArray() For i As Integer = 0 To nms.Length - 1 Sheet(0, i).Value = enNms(i) \'英文字段表头 Sheet(1, i).Value = nms(i) \' 中文字段表头 Sheet.Cols(i).Width = width(i) Next Sheet.Rows(0).Style = StyleHead Sheet.Rows(1).Style = StyleHead For r As Integer = 0 To dt.DataRows.Count - 1 For i As Integer = 0 To nms.Length - 1 If NOT dt.Datarows(r).IsNull(nms(i)) Then Sheet(r + 2, i).Value = dt.Datarows(r)(nms(i)) End If Next sheet.Rows(r+2).Style = Style Next book.PreBuild = False \'非报表模请将PreBuild 属性设置为False e.WriteBook(book, tblName & "_" & Format(Date.Now, "yyyyMMdd") & ".xlsx",False) \' .xlsx 会导致文件打不开 [此贴子已经被作者于2022/4/13 11:09:27编辑过]
|
-- 作者:有点蓝 -- 发布时间:2022/4/13 11:45:00 -- 是有问题,已反馈。先使用.xls文件吧 |