Foxtable(狐表)用户栏目专家坐堂 → excel报表问题


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

主题:excel报表问题

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 11:37:00 [显示全部帖子]

 生成以后,用vba处理下。

 

 

Dim Book As New XLS.Book(ProjectPath & "Attachments\订单计划一览表.xls")
Dim fl As String = ProjectPath & "Reports\订单计划一览表.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0) '引用工作簿的第一个工作表
Book.Build() '生成细节区

Book.Save(fl) '保存工作簿


Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(fl)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg As MSExcel.Range = Ws.UsedRange
Rg.WrapText = True
'Rg.EntireColumn.AutoFit   '自动调整列宽
Rg.EntireRow.AutoFit  '自动调整行高
App.Visible = True

[此贴子已经被作者于2017/8/17 11:38:18编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 17:31:00 [显示全部帖子]

以下是引用rjh4078在2017/8/17 17:21:00的发言:
用这个代码以后 所有格式都没有了  而且关键的数据区也没有自动调整行高  

 

不可能影响你的样式。

 

如果你的单元格是合并的单元格要这样处理 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=70571&replyID=485270&skin=1

 


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 17:32:00 [显示全部帖子]

 如果还有问题,实例发上来测试。

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 18:51:00 [显示全部帖子]

限定范围即可。

 

Dim App As New MSExcel.Application
try
   
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open("d:\工单.xls")
    Dim Ws = wb.WorkSheets(1)
    Dim rg As MSExcel.Range
Dim tempWs = wb.WorkSheets.Add
    Dim tempCell As MSExcel.Range = tempWs.Cells(1, 1)
    For Each rg In ws.UsedRange
        If rg.MergeCells AndAlso rg.address.contains("$I") AndAlso rg.MergeArea.Columns.count=4 Then
            Dim width As Double = 0
            Dim tempCol
            For Each tempcol In rg.MergeArea.Columns
                width = width + tempcol.ColumnWidth
            Next
            tempWs.Columns(1).WrapText = True
            tempWs.Columns(1).ColumnWidth = width
            tempWs.Columns(1).Font.Size = rg.Font.Size
            tempcell.Value = rg.Value
            tempcell.RowHeight = 0
            tempcell.EntireRow.Activate
            tempcell.EntireRow.AutoFit
            If (rg.RowHeight < tempcell.RowHeight) Then
                Dim tempHeight As Double
                Dim tempCount As Integer
                tempHeight = tempcell.RowHeight
                tempCount = rg.MergeArea.Rows.Count
                For Each addHeightRow As object In rg.MergeArea.Rows
                   
                    If (addHeightRow.RowHeight < tempHeight / tempCount) Then
                        addHeightRow.RowHeight = tempHeight / tempCount
                    End If
                    tempHeight = tempHeight - addHeightRow.RowHeight
                    tempCount = tempCount - 1
                Next
                rg.WrapText = True
            End If
        End If
    Next
    app.DisplayAlerts = False
    tempWs.Delete
    app.visible = True
catch ex As exception
    msgbox(ex.message)
    app.quit
End try


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 19:50:00 [显示全部帖子]

以下是引用rjh4078在2017/8/17 19:30:00的发言:
在生成报表的时候这个区域是动态变化的 如何来判断?

 

判断列和合并列数啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 19:50:00 [显示全部帖子]

以下是引用rjh4078在2017/8/17 19:42:00的发言:
而且这个只是把字体变小适应单元格

 

自动调整行高了啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 19:56:00 [显示全部帖子]

以下是引用rjh4078在2017/8/17 19:53:00的发言:

感觉这个方法太复杂了 如何判断哪个单元格数据需要调整?

 

根据你模板或者数据的规律。

 

 

'如果是合并单元格、从I列开始、合并单元格是4列

 If rg.MergeCells AndAlso rg.address.contains("$I") AndAlso rg.MergeArea.Columns.count=4 Then


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/8/17 20:32:00 [显示全部帖子]

 代码没问题,有问题上传具体实例。

 回到顶部