.net-导入excel文件并删除某些行

.net-导入excel文件并删除某些行,.net,vb.net,.net,Vb.net,我希望上传一个excel文件,打开它,读取每一行,并可能删除该行,这取决于一个单元格是否包含某些值 我已经有上传工作: Protected Sub ButtonUploadFile_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonUploadFile.Click If FileUploadExcel.HasFile Then Try

我希望上传一个excel文件,打开它,读取每一行,并可能删除该行,这取决于一个单元格是否包含某些值

我已经有上传工作:

    Protected Sub ButtonUploadFile_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonUploadFile.Click
        If FileUploadExcel.HasFile Then
            Try
                FileUploadExcel.SaveAs(Server.MapPath("~/ExcelImport.xls"))
                LabelUpload.Text = "Upload File Name: " & _
                      FileUploadExcel.PostedFile.FileName & "<br>" & _
                     "Type: " & _
                     FileUploadExcel.PostedFile.ContentType & _
                     " File Size: " & _
                     FileUploadExcel.PostedFile.ContentLength & " kb<br>"
            Catch ex As Exception
                LabelUpload.Text = "Error: " & ex.Message.ToString
            End Try
        Else
            LabelUpload.Text = "Please select a file to upload."
        End If
    End Sub
这是我所能得到的…但对其余的不完全确定

有什么想法吗


谢谢,

我会尝试使用第三方库对您的excel进行解析。除非您需要通过COM接口访问它。。。 我不久前发现的库是开源的,它给了我足够的灵活性,可以在excel中完成我需要的工作。 查看库本身以及如何使用它的快速示例。 希望这有帮助。

您可以使用
范围删除行(或列)

Dim xlWorkBook As Excel.WorkBook = xlApp.Workbooks.Open(sFileName)
Dim xlWS As Excel.WorkSheet = CType(xlWorkBook.Worksheets(sheet), Excel.Worksheet)

Dim xRng As Excel.Range = CType(xlWS.Rows(rowIndex), Excel.Range)
xRng.Delete()

不要在服务器上使用Excel Interop:它速度慢,容易“挂起”,Microsoft strongloy建议不要使用它。 当然,这看起来很“容易”,但它的可维护性太差了,以至于在未来几年里你都会头疼。 帮你自己一个忙,使用免费的EPPLus库,它可以更快地读取xlsx文件,而且使用起来更容易

Dim xlWorkBook As Excel.WorkBook = xlApp.Workbooks.Open(sFileName)
Dim xlWS As Excel.WorkSheet = CType(xlWorkBook.Worksheets(sheet), Excel.Worksheet)

Dim xRng As Excel.Range = CType(xlWS.Rows(rowIndex), Excel.Range)
xRng.Delete()