asp.net - 在 ASP.NET 项目 VB 中创建命名空间
问题描述
我正在尝试在 ASP.NET (VB.NET) 项目中使用 EPPlus 包,并且在将代码从 C# 转换为 VB 时遇到问题,并出现错误“'ToDataTable' 不是 'OfficeOpenXml.ExcelPackage' 的成员。我将命名空间文件放在 App_Code 文件夹中是正确的地方吗?
.aspx.vb 页面:
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As EventArgs)
If FileUpload1.HasFile Then
If Path.GetExtension(FileUpload1.FileName) = ".xlsx" Then
Dim package As ExcelPackage = New ExcelPackage(FileUpload1.FileContent)
GridView1.DataSource = package.ToDataTable()
GridView1.DataBind()
End If
End If
End Sub
我引用 EPPlus_Import 命名空间的 .aspx 页面
<%@ Page Title="PCA Complaints" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="true"
CodeFile="Default.aspx.vb" Inherits="EPPlus_Code" %>
<%@ Import Namespace="EPPlus_Import" %>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" Runat="Server">
<asp:FileUpload ID="fileUpload1" runat="server" CssClass="btn-primary btn-sm" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
CssClass="table table-hover table-striped table-bordered table-condensed GridView">
</asp:GridView>
我把这个文件放在 App_Code 文件夹中,不确定它是否属于那里。
Imports OfficeOpenXml
Imports System.Data
Imports System.Linq
Imports System.Runtime.CompilerServices
Namespace EPPlus_Import
Module ExcelPackageExtensions
<Extension()>
Function ToDataTable(ByVal package As ExcelPackage) As DataTable
Dim workSheet As ExcelWorksheet = package.Workbook.Worksheets.First()
Dim table As DataTable = New DataTable()
For Each firstRowCell In workSheet.Cells(1, 1, 1, workSheet.Dimension.[End].Column)
table.Columns.Add(firstRowCell.Text)
Next
For rowNumber = 2 To workSheet.Dimension.[End].Row
Dim row = workSheet.Cells(rowNumber, 1, rowNumber, workSheet.Dimension.[End].Column)
Dim newRow = table.NewRow()
For Each cell In row
newRow(cell.Start.Column - 1) = cell.Text
Next
table.Rows.Add(newRow)
Next
Return table
End Function
End Module
End Namespace
解决方案
推荐阅读
- python - 如何使用 OpenCV(Python)均衡不同图像中的强度
- css - CSS - 响应式弹性布局
- jquery - 如何使用 hasOwnProperty 并在嵌套 JSON 中检索其值
- angular - 在Angular 5中将用户图像添加到agm-marker
- sample - R新手,试图找出抽样批次
- android - 带有参数或操作的目标必须具有“名称”或“标识”属性
- c++ - 为什么我遇到缓冲区错误?
- amazon-web-services - CloudFormation 伪参数
- javascript - 如果 isset 提交,则更改孩子的父母
- python - python - 在 Postgresql 表中添加一个新列(Pandas Dataframe)