五月综合缴情婷婷六月,色94色欧美sute亚洲线路二,日韩制服国产精品一区,色噜噜一区二区三区,香港三级午夜理伦三级三

您現(xiàn)在的位置: 365建站網(wǎng) > 365文章 > vb.net調(diào)用Microsoft.Office.Interop.Excel.dll 超過65536行報錯解決方法

vb.net調(diào)用Microsoft.Office.Interop.Excel.dll 超過65536行報錯解決方法

文章來源:365jz.com     點(diǎn)擊數(shù):252    更新時間:2023-12-01 09:20   參與評論

vb.net調(diào)用Microsoft.Office.Interop.Excel.dll 超過65536行報錯解決方法

以下是在VB.NET中使用Microsoft.Office.Interop.Excel庫來分割工作表的示例代碼:

Imports Microsoft.Office.Interop
Public Class ExcelHelper
    Public Shared Sub SplitWorksheet(filePath As String, maxRowsPerSheet As Integer)
        ' 創(chuàng)建Excel應(yīng)用程序?qū)ο?
        Dim excelApp As New Excel.Application()
        ' 打開工作簿
        Dim workbook As Excel.Workbook = excelApp.Workbooks.Open(filePath)
        ' 獲取第一個工作表
        Dim worksheet As Excel.Worksheet = workbook.Sheets(1)
        ' 獲取工作表的總行數(shù)
        Dim totalRows As Integer = worksheet.UsedRange.Rows.Count
        ' 計算需要創(chuàng)建的工作表數(shù)量
        Dim sheetCount As Integer = Math.Ceiling(totalRows / maxRowsPerSheet)
        ' 循環(huán)創(chuàng)建工作表
        For i As Integer = 1 To sheetCount
            ' 創(chuàng)建一個新的工作表
            Dim newWorksheet As Excel.Worksheet = workbook.Sheets.Add(After:=workbook.Sheets(workbook.Sheets.Count))
            ' 獲取當(dāng)前工作表的起始行和結(jié)束行
            Dim startRow As Integer = (i - 1) * maxRowsPerSheet + 1
            Dim endRow As Integer = Math.Min(i * maxRowsPerSheet, totalRows)
            ' 將原工作表中的數(shù)據(jù)復(fù)制到新工作表中
            Dim rangeToCopy As Excel.Range = worksheet.Range("A" & startRow.ToString(), "Z" & endRow.ToString())
            rangeToCopy.Copy(newWorksheet.Range("A1"))
            ' 對新工作表進(jìn)行必要的操作,例如設(shè)置標(biāo)題等
            newWorksheet.Cells(1, 1).Value = "Sheet " & i.ToString()
            ' 保存新工作表
            newWorksheet.SaveAs(filePath.Replace(".xlsx", "_" & i.ToString() & ".xlsx"))
            ' 釋放資源
            System.Runtime.InteropServices.Marshal.ReleaseComObject(newWorksheet)
        Next
        ' 關(guān)閉工作簿
        workbook.Close()
        ' 釋放資源
        System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook)
        System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet)
        ' 關(guān)閉Excel應(yīng)用程序
        excelApp.Quit()
        ' 釋放資源
        System.Runtime.InteropServices.Marshal.ReleaseComObject(excelApp)
    End Sub
End Class


使用示例:

Dim filePath As String = "C:\path\to\your\file.xlsx"
Dim maxRowsPerSheet As Integer = 65536  ' 每個工作表的最大行數(shù)
ExcelHelper.SplitWorksheet(filePath, maxRowsPerSheet)

此代碼將打開給定的Excel文件,將第一個工作表分割成不超過65536行的多個工作表,并將其保存為單獨(dú)的文件。每個新工作表的標(biāo)題將設(shè)置為"Sheet 1"、"Sheet 2"等。請確保在使用Microsoft.Office.Interop.Excel庫之前已將其添加到項目引用中。


如對本文有疑問,請?zhí)峤坏浇涣髡搲瑥V大熱心網(wǎng)友會為你解答??! 點(diǎn)擊進(jìn)入論壇

發(fā)表評論 (252人查看,0條評論)
請自覺遵守互聯(lián)網(wǎng)相關(guān)的政策法規(guī),嚴(yán)禁發(fā)布色情、暴力、反動的言論。
昵稱:
最新評論
------分隔線----------------------------

其它欄目

· 建站教程
· 365學(xué)習(xí)

業(yè)務(wù)咨詢

· 技術(shù)支持
· 服務(wù)時間:9:00-18:00
365建站網(wǎng)二維碼

Powered by 365建站網(wǎng) RSS地圖 HTML地圖

copyright © 2013-2024 版權(quán)所有 鄂ICP備17013400號