Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 将数据导出到多个Excel工作表_Vb.net - Fatal编程技术网

Vb.net 将数据导出到多个Excel工作表

Vb.net 将数据导出到多个Excel工作表,vb.net,Vb.net,我正在使用以下代码将我的listview导出到Excelsheet,但问题是我有多个listview,我必须在同一excel文件的不同工作表中导出这些listview Dim flnameSaveAs As String = System.IO.Path.GetFileName(Main.spath1) 'Save Files name Dim extension As String extension = Path.GetExtension(Main.spath1) Dim file A

我正在使用以下代码将我的listview导出到Excelsheet,但问题是我有多个listview,我必须在同一excel文件的不同工作表中导出这些listview

Dim flnameSaveAs As String = System.IO.Path.GetFileName(Main.spath1)
'Save Files name
Dim extension As String
  extension = Path.GetExtension(Main.spath1)

Dim file As String = System.IO.Path.GetFileName(Main.spath1)
Dim FinenameA As String = System.IO.Path.GetDirectoryName(Main.spath1)

Dim savnames As String
savnames = file.Substring(0, Len(file) - Len(extension))

Dim ExportSheet As String
    ExportSheet = deskPath + "\Cel_ID_TimeLine.txt"

    Dim lvi As ListViewItem
    Dim sb As New System.Text.StringBuilder

    Dim sbhd As New System.Text.StringBuilder
    Dim columns As Integer = lvCidTimeLine.Columns.Count

    For ixhd As Integer = 0 To lvCidTimeLine.Columns.Count - 1
        sbhd.Append(lvCidTimeLine.Columns(ixhd).Text)
        sbhd.Append(vbTab)
    Next

    sb.Append(vbCrLf)

    For Each lvi In lvCidTimeLine.Items
        For ix As Integer = 0 To lvi.SubItems.Count - 1
            sb.Append(lvi.SubItems(ix).Text)
            If ix < lvi.SubItems.Count - 1 Then
                sb.Append(vbTab)
            Else
                sb.Append(vbCrLf)
            End If
        Next
    Next

    Dim sw As New StreamWriter(ExportSheet)
    sw.Write(sbhd.ToString)
    sw.Write(sb.ToString)
    sw.Close()


    Dim oExcel As Excel.Application

    ' Create the spreadsheet

    oExcel = CreateObject("Excel.Application")

  oExcel.Workbooks.OpenText(ExportSheet, , , , -4142, , True)
  oExcel.Cells.EntireColumn.AutoFit()

  oExcel.ActiveWorkbook.SaveAs(savpath + "\" + savnames + ".xls", -4143)
  oExcel.Quit()
  oExcel = Nothing
Dim flnameSaveAs As String=System.IO.Path.GetFileName(Main.spath1)
'保存文件名
作为字符串的Dim扩展名
extension=Path.GetExtension(Main.spath1)
Dim文件格式为String=System.IO.Path.GetFileName(Main.spath1)
Dim FinenameA作为字符串=System.IO.Path.GetDirectoryName(Main.spath1)
将名称命名为字符串
savnames=file.Substring(0,Len(文件)-Len(扩展名))
将纸张变暗为字符串
ExportSheet=deskPath+“\Cel\u ID\u TimeLine.txt”
将lvi调整为ListViewItem
将sb设置为新System.Text.StringBuilder
Dim sbhd作为新System.Text.StringBuilder
将列设置为整数=lvcidtimline.columns.Count
对于ixhd,整数=0到lvCidTimeLine.Columns.Count-1
追加(lvCidTimeLine.Columns(ixhd.Text)
sbhd.Append(vbTab)
下一个
某人附加(vbCrLf)
对于lvCidTimeLine.Items中的每个lvi
对于ix,整数=0到lvi.SubItems.Count-1
sb.追加(lvi.子项(ix).文本)
如果ix
那么,您知道如何添加另一个工作表并向其中导出另一个listview吗???

试试下面的代码

Try
        Dim objExcel As New Excel.Application
        Dim bkWorkBook As Excel.Workbook
        Dim shWorkSheet As Excel.Worksheet
        Dim shWorkSheet1 As Excel.Worksheet

        Dim i As Integer
        Dim j As Integer

        objExcel = New Excel.Application
        bkWorkBook = objExcel.Workbooks.Add
        shWorkSheet = CType(bkWorkBook.ActiveSheet, Excel.Worksheet)

        For i = 0 To lv1.Columns.Count - 1
            shWorkSheet.Cells(1, i + 1) = lv1.Columns(i).Text
        Next
        For i = 0 To lv1.Items.Count - 1
            For j = 0 To lv1.Items(i).SubItems.Count - 1
                shWorkSheet.Cells(i + 2, j + 1) = lv1.Items(i).SubItems(j).Text
            Next
        Next

        shWorkSheet1 = bkWorkBook.Worksheets.Add(, shWorkSheet, , )

        For i = 0 To lv2.Columns.Count - 1
            shWorkSheet1.Cells(1, i + 1) = lv2.Columns(i).Text
        Next
        For i = 0 To lv2.Items.Count - 1
            For j = 0 To lv2.Items(i).SubItems.Count - 1
                shWorkSheet1.Cells(i + 2, j + 1) = lv2.Items(i).SubItems(j).Text
            Next
        Next


        objExcel.Visible = False
        objExcel.Application.DisplayAlerts = False

        objExcel.ActiveWorkbook.SaveAs(savpath + "\" + savnames + "_1" + ".xls", -4143)
        objExcel.Quit()

        objExcel = Nothing

    Catch ex As Exception
        MsgBox(ex.ToString)
    End Try

    Dim proc As System.Diagnostics.Process
    For Each proc In System.Diagnostics.Process.GetProcessesByName("EXCEL")
        proc.Kill()
    Next

您需要添加到“图纸”集合

请帮助我,因为我的项目因为这个问题而受阻。