Foxtable(狐表)用户栏目专家坐堂 → excel的单元格设置成 ”自动换行“为什么报表输出时还显示不全?


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

主题:excel的单元格设置成 ”自动换行“为什么报表输出时还显示不全?

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
excel的单元格设置成 ”自动换行“为什么报表输出时还显示不全?  发帖心情 Post By:2020/8/21 14:06:00 [只看该作者]

excel的单元格设置成 “自动换行” 为什么报表输出时还显示不全?
 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:管理项目1.rar

命令窗口运行:
Dim fl As String

Dim Book As New XLS.Book(ProjectPath & "Attachments\周报样式.xlsx") '打开模板

fl= ProjectPath & "Reports\周报样式.pdf"

If FileSys.DirectoryExists(ProjectPath & "Reports\") = False Then
    FileSys.CreateDirectory(ProjectPath & "Reports\")
End If

Book.Build() '生成报表

Book.SaveToPDF(fl) '保存为PDF文件
Dim Proc As New Process '打开PDF文件
Proc.File = fl
Proc.Start()


[此贴子已经被作者于2020/8/21 14:17:31编辑过]

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/21 14:23:00 [只看该作者]

需要生成报表后再设置换行,如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=141267&skin=0

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/8/24 8:56:00 [只看该作者]

命令窗口加了阴影的代码,自动换行还是没有实现啊。看看怎么回事啊。多谢了

Dim fl As String

Dim Book As New XLS.Book(ProjectPath & "Attachments\周报样式.xlsx") '打开模板

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.WordWrap = True
For n As Integer = 3 To Sheet.Rows.Count -1
  Sheet(n,4).Style =Style '5改为人员列的索引即可
Next


fl= ProjectPath & "Reports\周报样式.pdf"

If FileSys.DirectoryExists(ProjectPath & "Reports\") = False Then
    FileSys.CreateDirectory(ProjectPath & "Reports\")
End If

Book.Build() '生成报表

Book.SaveToPDF(fl) '保存为PDF文件
Dim Proc As New Process '打开PDF文件
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/24 9:07:00 [只看该作者]

生成报表后在设置

……
Book.Build() '生成报表
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.WordWrap = True
For n As Integer = 3 To Sheet.Rows.Count -1
  Sheet(n,4).Style =Style '5改为人员列的索引即可
Next
Book.SaveToPDF(fl) '保存为PDF文件
……
[此贴子已经被作者于2020/8/24 9:07:02编辑过]

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/8/24 9:33:00 [只看该作者]

把样式放到Book.Build() 之后,还是没有实现多行显示啊。看看怎么回事吧

Dim fl As String

Dim Book As New XLS.Book(ProjectPath & "Attachments\周报样式.xlsx") '打开模板


fl= ProjectPath & "Reports\周报样式.pdf"

If FileSys.DirectoryExists(ProjectPath & "Reports\") = False Then
    FileSys.CreateDirectory(ProjectPath & "Reports\")
End If

Book.Build() '生成报表

Dim Sheet As XLS.Sheet = Book.Sheets(0)
Dim Style As XLS.Style = Book.NewStyle() '定义新样式
Style.WordWrap = True
For n As Integer = 3 To Sheet.Rows.Count -1
  Sheet(n,4).Style =Style '5改为人员列的索引即可
Next

Book.SaveToPDF(fl) '保存为PDF文件
Dim Proc As New Process '打开PDF文件
Proc.File = fl
Proc.Start()

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


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

换种方式

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Dim fl As String = ProjectPath & "Reports\出库单.xls"
Dim fl2 As String = ProjectPath & "Reports\出库单.pdf"
Book.Build() '生成细节区
Book.Save(fl)

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.Columns("F")
    Rg.WrapText = True
    Rg.EntireRow.AutoFit  '自动调整行高
    wb.Saved = True
    wb.ExportAsFixedFormat(MSExcel.XlFixedFormatType.xlTypePDF, fl2, MsExcel.XlFixedFormatQuality.xlQualityStandard, True, False,  System.Reflection.Missing.Value,  System.Reflection.Missing.Value, True,  System.Reflection.Missing.Value)
    app.quit
    catch
    app.quit
End try

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


加好友 发短信
等级:四尾狐 帖子:896 积分:7535 威望:0 精华:0 注册:2017/12/27 14:19:00
  发帖心情 Post By:2020/8/24 11:07:00 [只看该作者]

改了之后第一次调用,确实单元格多行显示了。但是Book.Save(fl)执行后更改了excel模板的内容(可以到附件文件夹打开看一下该excel模板的内容),下次再调用以下代码就会有问题了。该怎么解决啊?
如果能让打开excel模板后,不保存excel模板内容应该就可以了。
Dim fl As String=ProjectPath & "Attachments\周报样式.xlsx"
Dim fl2 As String=ProjectPath & "Reports\周报样式.pdf"

Dim Book As New XLS.Book(ProjectPath & "Attachments\周报样式.xlsx") '打开模板


If FileSys.DirectoryExists(ProjectPath & "Reports\") = False Then
    FileSys.CreateDirectory(ProjectPath & "Reports\")
End If

Book.Build() '生成报表

Book.Save(fl)

Dim App As New MSExcel.Application
try
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
    Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
    Dim Rg As MSExcel.Range = Ws.Columns("F")
    Rg.WrapText = True
    Rg.EntireRow.AutoFit  '自动调整行高
    wb.Saved = True
    wb.ExportAsFixedFormat(MSExcel.XlFixedFormatType.xlTypePDF, fl2, MsExcel.XlFixedFormatQuality.xlQualityStandard, True, False,  System.Reflection.Missing.Value,  System.Reflection.Missing.Value, True,  System.Reflection.Missing.Value)
    app.quit
    catch
    app.quit
End try
[此贴子已经被作者于2020/8/24 11:19:01编辑过]

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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/8/24 11:19:00 [只看该作者]

Dim fl As String=ProjectPath & "Reports\周报样式.xlsx"

 回到顶部