使用EXECL打印报表的问题

wxling2003 2003-04-21 11:50:16
用VB.NET通过EXECL打印报表,能不能在程序里设置边框的线,或者先做一个模板,在使用的时候能不能根据需要,在SHEET内拷贝,因为我要打印报表,数据要写在一个带边框的表格里,可是数据量不定,可能会有很多页,我只能在模板里设定固定的页,应该怎么办呢?
...全文
171 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wxling2003 2003-04-21
  • 打赏
  • 举报
回复
谢谢,不过我已经解决了,先做了个模板,然后使用下面这句话可以拷贝
xlSheet.Range(xlSheet.Cells(1, 1), xlSheet.Cells(NUM_ROW, NUM_COL)).Copy(xlSheet.Range(xlSheet.Cells(NUM_ROW * i + 1, 1), xlSheet.Cells(NUM_ROW * (i + 1), NUM_COL)))
不过新的问题是,EXECL使用完,不能关掉进程。每打印一次,就不能再使用EXECL了,但是通过我的应用程序还可以打印。应该怎么关上呢?
gaodz 2003-04-21
  • 打赏
  • 举报
回复
还有就是使用VBA编程,在EXCEL文件中的WORKBOOK_OPEN事件中添加程序,在VB脚本编辑器的工具菜单下添加对ADO的应用,

Private Sub Workbook_Open()

Dim adoConn As New ADODB.Connection
adoConn.ConnectionString = ConnString
adoConn.Open
Dim rs As Recordset
rs.CursorLocation = adUseClient
rs.Open strSQL, adoConn
Dim i As Integer,j As Integer
For i = 0 To rs.Fields.Count - 1
ActiveSheet.Cell(i, 1) = rs.Fields(i).Name
Next i
For i = 0 To rs.Fields.Count - 1
For j = 0 To rs.RecordCount - 1
ActiveSheet.Cells(i, j + 2) = rs.Fields(j).Value
Next j
rs.MoveNext
Next i
Range(Cells(1,1),Cells(i,j)).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.Weight = xlThin
.ColorIndex = xlAutomatic
End With

End Sub

举个例子,抛砖引玉
gaodz 2003-04-21
  • 打赏
  • 举报
回复
dim wkExcel as new Excel.Application
....
'上面为打开EXCEL
for i 0 to Max_Row
for j 1 to Max_Col
With Application.ThisWorkbook.ActiveSheet.Cells(i,j)
.Borders(xlEdgeLeft).LineStyle=xlContinous
.Borders(xlEdgeLeft).Weight = xlThin
.Borders(xlEdgeLeft).ColorIndex = xlAutomatic

.Borders(xlEdgeTop).LineStyle = xlContinuous
.Borders(xlEdgeTop).Weight = xlThin
.Borders(xlEdgeTop).ColorIndex = xlAutomatic
....Borders(xlEdgeBottom) '同上
....Borders(xlEdgeRight) '同上

End With

lihonggen0 2003-04-21
  • 打赏
  • 举报
回复
边框线
xlSheet.Range(.Cells(1, 1), .Cells(rowIndex, colIndex)).Borders.LineStyle = 1
'设表格边框样式


可以的先做一个模板,--->用代码打开模板--->将数据填充到模板中

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧