VB.net如何在Excel中增加sheet工作表

djk2003 2010-01-25 10:46:21
在VB.net Excel如何增加sheet工作表?急在线等!谢谢了!
...全文
2455 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
沐NeMo 2010-01-26
  • 打赏
  • 举报
回复
增加sheet工作表
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

xlApp = New Excel.Application
xlBook = xlApp.Workbooks.Add
xlSheet = xlBook.Worksheets.Item(xlBook.Worksheets.Count)
fina1982 2010-01-26
  • 打赏
  • 举报
回复
Dim MyExcel As New Microsoft.Office.Interop.Excel.Application '声明Excel程序对象
Dim MyBook As Microsoft.Office.Interop.Excel.Workbook = Nothing'声明工作薄
Dim MySheet As Microsoft.Office.Interop.Excel.Worksheet = Nothing '声明工作表
MyBook = MyExcel.Workbooks.Add
MySheet = MyBook.Worksheets.Add
IPC2008 2010-01-25
  • 打赏
  • 举报
回复
For i = 1 To myDataSet.Tables(0).Rows.Count
For j = 11 To myDataSet.Tables(0).Columns.Count

If pnameList(j - 11) = 0 Then

Else

If Not (myDataSet.Tables(0).Rows(i - 1).Item(j - 11).GetType Is GetType(DBNull)) Then

'oSheet.Cells(1, i + 3).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(2) '腔体钢号 流水号
'oSheet.Cells(2, i + 3).Value = myDataSet.Tables(0).Rows(i - 1).Item(4) '检验结果
oSheet.Cells(4, i + 3).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(7) '条码

oSheet.Cells(pnameList(j - 11), i + 3).Value = myDataSet.Tables(0).Rows(i - 1).Item(j - 1) '第一条数据

End If

End If

Next
Next


这个没什么说的,就是读取数据集,然后将结果导入到excel对应的行中
IPC2008 2010-01-25
  • 打赏
  • 举报
回复
oWB = oXL.Workbooks.Open("D:\DVC_Excel_Model\" & cpxls & "")

cpxls----是产品名称变量



pnameList = getProductData.ProductExcellist(getProductNameStr)

这是一个字符数组,后面的数字就是导出的行

pnameList(0)=4
pnameList(1)=5
pnameList(2)=6
pnameList(3)=7
.....
pnameList(100)=107
....



myDataSet.Tables(0).Rows.Count > 253

这是我要导出的数据集,也就是查询到的结果,统计总数

因为我表格是从第4列开始,受EXCEL 只能256列限制,所以超过253列就自动升成一个新sheet

IPC2008 2010-01-25
  • 打赏
  • 举报
回复

#Region " 取出测试参数 EXCEl位置 清单"

Public Function ProductExcellist(ByVal ProductName As String) As Integer()

'Dim sb As New StringBuilder
Dim i As Integer = 0
Dim Pname(1000) As Integer


' 利用 SqlConnectionStringBuilder 对象来构建连接字符串。
Dim connectStringBuilder As New SqlConnectionStringBuilder()
connectStringBuilder.DataSource = ServerIP ' "192.168.18.253"
connectStringBuilder.InitialCatalog = SQLDbName ' "DVC"
connectStringBuilder.IntegratedSecurity = False
connectStringBuilder.UserID = SQLUserID 'sa
connectStringBuilder.Password = SQLUserPwd '0

Try
' 建立连接
Using con As SqlConnection = New SqlConnection(connectStringBuilder.ConnectionString)

' 开启连接
con.Open()

' 建立数据命令对象(亦即 SqlCommand 对象)
Dim myCommand As New SqlCommand("select excel from " & ProductName & "_测试参数", con)

'Using myReader As SqlDataReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection Or CommandBehavior.SingleResult Or CommandBehavior.SingleRow)

'取得数据读取器。
Using myReader As SqlDataReader = myCommand.ExecuteReader


' 循序处理各个结果集。
ExcelNum = 0

While (myReader.Read())

Pname(i) = myReader.Item("excel")
i = i + 1
ExcelNum = ExcelNum + 1

End While

End Using
End Using

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

Return Pname

End Function

#End Region
djk2003 2010-01-25
  • 打赏
  • 举报
回复
谢谢啊
IPC2008 2010-01-25
  • 打赏
  • 举报
回复
我帮你一下吧

Imports Microsoft.Office.Interop
这个需要加上去

(如果不能运行,请安装office中Excel组件并选中.net编程)



Private Function OutputAsExcel(ByVal cpxls As String, ByVal filename As String, ByRef myDatatSet As DataSet) As Boolean

Dim n As Integer '统计所需表格数
Dim i As Integer
Dim j As Integer
Dim k As Integer


Dim oXL As Excel.Application

Dim oWB As Excel.Workbook

Dim oSheet As Excel.Worksheet

Dim oRng As Excel.Range

Try

oXL = New Excel.Application

oXL.Visible = True

'oXL.Workbooks.Add() '添加一个新的Excel文件

oWB = oXL.Workbooks.Open("D:\DVC_Excel_Model\" & cpxls & "")

oXL.Sheets(1).Name = "测试数据"

oSheet = oWB.Worksheets(oXL.Sheets(1).Name)

oSheet.Select()

oSheet.Activate()



'添加项目
Dim pnameList(ExcelNum) As Integer

pnameList = getProductData.ProductExcellist(getProductNameStr)


'计算数据量,确定需要几个表格

n = 0

If myDataSet.Tables(0).Rows.Count > 253 Then

n = (myDataSet.Tables(0).Rows.Count \ 253)

For i = 1 To n

oSheet.Copy(After:=oWB.Worksheets(i))

Next

End If



'循环写入数据

If n = 0 Then

oWB.Worksheets(1).Select()
oSheet = oWB.Worksheets(1)
oSheet.Activate()

For i = 1 To myDataSet.Tables(0).Rows.Count
For j = 11 To myDataSet.Tables(0).Columns.Count

If pnameList(j - 11) = 0 Then

Else

If Not (myDataSet.Tables(0).Rows(i - 1).Item(j - 11).GetType Is GetType(DBNull)) Then

'oSheet.Cells(1, i + 3).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(2) '腔体钢号 流水号
'oSheet.Cells(2, i + 3).Value = myDataSet.Tables(0).Rows(i - 1).Item(4) '检验结果
oSheet.Cells(4, i + 3).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(7) '条码

oSheet.Cells(pnameList(j - 11), i + 3).Value = myDataSet.Tables(0).Rows(i - 1).Item(j - 1) '第一条数据

End If

End If

Next
Next


Else



For k = 0 To n - 1
'==============================================================================================================================
oWB.Worksheets(k + 1).Select()
oSheet = oWB.Worksheets(k + 1)
oSheet.Activate()

For i = 1 + 253 * k To 253 * (k + 1)
For j = 11 To myDataSet.Tables(0).Columns.Count

If pnameList(j - 11) = 0 Then

Else

'oSheet.Cells(1, i + 3 - k * 253).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(2) '腔体钢号 流水号
'oSheet.Cells(2, i + 3 - k * 253).Value = myDataSet.Tables(0).Rows(i - 1).Item(4) '检验结果
oSheet.Cells(4, i + 3 - k * 253).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(7) '条码


oSheet.Cells(pnameList(j - 11), i + 3 - k * 253).Value = myDataSet.Tables(0).Rows(i - 1).Item(j - 1) '第一条数据

End If

Next
Next

'==============================================================================================================================
Next


oWB.Worksheets(k + 1).Select()
oSheet = oWB.Worksheets(k + 1)
oSheet.Activate()


For i = k * 253 + 1 To myDataSet.Tables(0).Rows.Count

For j = 11 To myDataSet.Tables(0).Columns.Count

If pnameList(j - 11) = 0 Then

Else

If Not (myDataSet.Tables(0).Rows(i - 1).Item(j - 11).GetType Is GetType(DBNull)) Then

'oSheet.Cells(1, i + 3 - k * 253).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(2) '腔体钢号 流水号
'oSheet.Cells(2, i + 3 - k * 253).Value = myDataSet.Tables(0).Rows(i - 1).Item(4) '检验结果
oSheet.Cells(4, i + 3 - k * 253).Value = "'" & myDataSet.Tables(0).Rows(i - 1).Item(7) '条码

oSheet.Cells(pnameList(j - 11), i + 3 - k * 253).Value = myDataSet.Tables(0).Rows(i - 1).Item(j - 1) '第一条数据

End If

End If

Next
Next



End If


oSheet.SaveAs(filename)



Catch ex As Exception
OutputAsExcel = False
MessageBox.Show(ex.Message)
Finally
oXL.Quit()
End Try

oWB = Nothing
oXL = Nothing

OutputAsExcel = True



End Function


16,554

社区成员

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

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