Asp.net 使用FileUpload有条件地上载Excel电子表格

Asp.net 使用FileUpload有条件地上载Excel电子表格,asp.net,vb.net,Asp.net,Vb.net,下面是我的Vb代码,它获取excel文件的行数。但是,如果行数大于10k行,我想抛出一个异常并给出一条错误消息。我怎么能做到呢?我已经做了关于获取行计数的研究,但不确定如何抛出异常。下面是一个ASP.Net Windows窗体应用程序 Dim xls As New Excel.Application Dim sheet As Excel.Worksheet Dim filePath As String = Path.Combine(GlobalVa

下面是我的Vb代码,它获取excel文件的行数。但是,如果行数大于10k行,我想抛出一个异常并给出一条错误消息。我怎么能做到呢?我已经做了关于获取行计数的研究,但不确定如何抛出异常。下面是一个ASP.Net Windows窗体应用程序

Dim xls As New Excel.Application
            Dim sheet As Excel.Worksheet
            Dim filePath As String = Path.Combine(GlobalVariable.savedPath, GlobalVariable.excelFileName)
            xls.Workbooks.Open(filePath)
            sheet = xls.ActiveWorkbook.Sheets(1)
            Dim maxSize As Integer = 2
            Dim row As Integer = 1
            Do Until sheet.Cells(row, 1).value Is Nothing
                row += 1
            Loop
            MsgBox("last Row is " & row - 1)
            xls.Workbooks.Close()
            xls.Quit()
            releaseObject(sheet)
            releaseObject(xls)

您已经在计算行数,因此可以修改循环,使其仅在行数小于10000时继续

        Dim row As Integer = 1
        Do 
            row += 1
        Loop while sheet.Cells(row, 1).value IsNot Nothing AndAlso row <= 10000
更新以反映OP问题更新: 我不知道我是否建议在行达到10000时抛出一个异常来处理。相反,我希望这样做:

    Private Sub BtnUpload_OnClick(sender As Object, e As EventArgs) Handles BtnUplaod.Click

        REM Save SpreadSheet
        Dim filePath As String = Path.Combine(GlobalVariable.savedPath, GlobalVariable.excelFileName)
        myfileUploader.saveAs(filePath)


        REM Open SpreadSheet
        Dim xls As New Excel.Application
        Dim sheet As Excel.Worksheet
        xls.Workbooks.Open(filePath)
        sheet = xls.ActiveWorkbook.Sheets(1)
        Dim maxSize As Integer = 2

        REM Loop through spreadsheet and count rows
        Dim row As Integer = 1
        Do
            row += 1

        Loop While sheet.Cells(row, 1).value IsNot Nothing AndAlso row <= 10000 'Exit loop when end of SpreadSheet is reached or if rows exceeds 10,000

        REM Release Resources
        xls.Workbooks.Close()
        xls.Quit()
        releaseObject(sheet)
        releaseObject(xls)

        REM Decide whether to accept upload, or reject and show error
        If row >= 10000 Then 'If row > 10000 delete file and show error

            REM Delete the file
            File.Delete(filePath)
            REM Show some sort of error to user - Its up to you how you want to do so. That is a seperate question
            MsgBox("Your Error")

            REM Else SpreadSheet is valid
        Else
            'Your Code code doing what you want with spreadsheet goes here
            MsgBox("last Row is " & row - 1)
        End If

    End Sub
Private子BtnUpload\u OnClick(发送者作为对象,e作为事件参数)处理BtnUpload。单击
REM保存电子表格
Dim filePath为String=Path.Combine(GlobalVariable.savedPath,GlobalVariable.excelFileName)
myfileUploader.saveAs(文件路径)
REM开放式电子表格
Dim xls作为新的Excel.Application
将工作表设置为Excel。工作表
xls.Workbooks.Open(文件路径)
sheet=xls.ActiveWorkbook.Sheets(1)
Dim maxSize为整数=2
REM在电子表格中循环并计算行数
将行设置为整数=1
做
行+=1
在sheet.Cells(第1行)中循环。值不是空,并且第10000行删除文件并显示错误
REM删除该文件
File.Delete(文件路径)
REM向用户显示某种类型的错误-这取决于您希望如何执行。这是另一个问题
MsgBox(“您的错误”)
REM Else电子表格有效
其他的
'您的代码可以在这里对电子表格执行您想要的操作
MsgBox(“最后一行是”&行-1)
如果结束
端接头
此代码将在用户单击网页上名为BtnUpload的按钮时运行。你可以把它放在任何你喜欢的地方


我想这就是你想要的。是否正确?

我如何处理此异常,以便用户单击“确定”并重试?在中出现类型为“system.exception”的异常,但未在用户代码中处理。抛出新异常(“我的异常消息”)只需在输入消息时抛出一个新异常…然后您必须正确处理它以执行所需操作。要回答如何允许用户重试,我需要了解有关您的程序的更多信息。是Asp.Net还是windows窗体?如果是ASP,是WinForms、MVC还是AngularJS?请更新您的问题,以便在您的问题中提供更多信息。我的错。您必须先释放资源,然后才能尝试删除该文件。我更新了答案。我很高兴……很高兴programming@slugster谢谢你的编辑。
    Private Sub BtnUpload_OnClick(sender As Object, e As EventArgs) Handles BtnUplaod.Click

        REM Save SpreadSheet
        Dim filePath As String = Path.Combine(GlobalVariable.savedPath, GlobalVariable.excelFileName)
        myfileUploader.saveAs(filePath)


        REM Open SpreadSheet
        Dim xls As New Excel.Application
        Dim sheet As Excel.Worksheet
        xls.Workbooks.Open(filePath)
        sheet = xls.ActiveWorkbook.Sheets(1)
        Dim maxSize As Integer = 2

        REM Loop through spreadsheet and count rows
        Dim row As Integer = 1
        Do
            row += 1

        Loop While sheet.Cells(row, 1).value IsNot Nothing AndAlso row <= 10000 'Exit loop when end of SpreadSheet is reached or if rows exceeds 10,000

        REM Release Resources
        xls.Workbooks.Close()
        xls.Quit()
        releaseObject(sheet)
        releaseObject(xls)

        REM Decide whether to accept upload, or reject and show error
        If row >= 10000 Then 'If row > 10000 delete file and show error

            REM Delete the file
            File.Delete(filePath)
            REM Show some sort of error to user - Its up to you how you want to do so. That is a seperate question
            MsgBox("Your Error")

            REM Else SpreadSheet is valid
        Else
            'Your Code code doing what you want with spreadsheet goes here
            MsgBox("last Row is " & row - 1)
        End If

    End Sub