小编Wal*_*thi的帖子

如何将 Excel (.xlsx) 文件导入并显示到 Blazor WASM 客户端(无需上传到服务器)

正如标题所说。网上有很多用于将文件上传到后端的示例,但我在验证客户端/离线后仅上传数据(无文件)。理论上,任何在 .Net5 上运行的东西都应该能够在 WASM 中以接近的性能运行。我正在尝试将这些繁重的操作卸载到客户的机器上。

我在 ClosedXML 方面取得了一些成功,但是当文件有几千行时,它会变得非常慢。在 Blazor 服务器端使用 ClosedXML 轻松加载 100,000 行。

笔记:

  • 使用 MudBlazor UI 组件
  • 我有一个来自文件的流,而不是 ClosedXML 的文件路径(就像我在控制台应用程序上一样),我认为这是 WASM 中的唯一方法,但我可能是错的。
  • 我在 NPOI 中运行了相同的代码,结果相似(WASM 慢,服务器端快)。
  • 我宁愿避免使用 EPPlus,除非它有神奇的修复方法。

页:

@page "/upload"
@inject HttpClient Http

<h1>Upload Data</h1>

<p>This component demonstrates uploading data from Excel.</p>

<InputFile id="fileInput" OnChange="UploadFiles" hidden single />

<MudButton HtmlTag="label"
           Variant="Variant.Filled"
           Color="Color.Primary"
           StartIcon="@Icons.Filled.CloudUpload"
           for="fileInput">
    Upload Files
</MudButton>

@if (dataTable == null)
{
    <p><em>Please upload Excel File</em></p>
}
else
{
    <MudTable Items="@dataTable.AsEnumerable().Take(500)" Hover="true" Breakpoint="Breakpoint.Sm" T="DataRow" RowsPerPage="100">
        <HeaderContent>
            @foreach …
Run Code Online (Sandbox Code Playgroud)

c# npoi closedxml .net-5 blazor-webassembly

6
推荐指数
0
解决办法
5325
查看次数

Blazor WASM PWA 无法更改图标,无法更改名称

我正在努力解决一个案例,我已经对如何解决这个问题做了很好的研究。它对每个人都有效,但对我不起作用!

环境:

  • 微软 Windows 10 专业版
  • Visual Studio 社区版 2019

因此,我创建了一个项目,并从一开始就选择了渐进式 Web 应用程序 (PWA),以自动生成我需要的所有内容。还使应用程序 ASP.NET Core 托管。

启动项目是独立模式下的 Rihal.Server(不是 IIS 或 Docker)。

当我启动应用程序时,我在 Chrome 中收到安装应用程序的默认提示。当我单击“+”图标时,我会看到默认的 Blazor 图标和应用程序的名称“Rihal”。到目前为止,一切都很好。当我更改图标和名称时,我仍然保留默认值! 在此输入图像描述

  1. 我已经尝试一一清理和重建所有项目,没有错误。
  2. 我尝试过重新启动 Visual Studio。
  3. 我尝试更改清单中的其他内容(例如背景颜色)以查看任何变化,但没有任何变化。
  4. 我已经检查了构建操作(内容)。默认复制到输出目录为(不复制),更改为(始终复制)无效。

就像清单被完全忽略一样。

我开发了这个应用程序的其他部分,然后更改了图标和名称:

  1. 替换了默认图标(与较小分辨率下的 192 使用的图标相同) 在此输入图像描述

  2. 更新了我的manifest.json以获取192尺寸和名称/短名称:(我也尝试添加多个尺寸)。

{
  "name": "Rihal Timesheet",
  "short_name": "Timesheet",
  "start_url": "./",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#03173d",
  "icons": [
    {
      "src": "icon-512.png",
      "type": "image/png",
      "sizes": "512x512"
    },
    {
      "src": "icon-192.png",
      "type": "image/png",
      "sizes": "192x192"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

其他相关文件:

Rihal.Client service-worker.js

// In development, always …
Run Code Online (Sandbox Code Playgroud)

asp.net-core manifest.json blazor blazor-webassembly blazor-pwa

5
推荐指数
1
解决办法
6418
查看次数

使用 Blazor Webassembly 和 ASP.NET Core 安全下载文件

我设法在这里找到了一个解决方案,该解决方案展示了如何使用 JS 注入创建控制器和下载文件: 如何使用 Blazor 生成和保存文件客户端?

但是,将 [Authorize] 属性添加到控制器会阻止任何下载文件的尝试(即使已登录)。我希望获得授权的人只能访问下载文件。

网站的其余部分使用 JWT 没有问题。

我的问题是如何将 JWT 身份验证添加到此文件下载功能?或者有其他方法吗?文件在服务器的文件系统中,上面的方法对内存非常友好,所以我更喜欢远离 blob。

注意:我使用的是应用程序内用户帐户。

javascript c# asp.net-core blazor blazor-webassembly

5
推荐指数
1
解决办法
1273
查看次数

如何在 Windows Server 2016 Build 14393 上运行 Docker Linux 容器

我现在的情况是:

  • 我无法选择服务器操作系统(Windows Server 2016 Build 14393)。
  • 并且无法选择容器操作系统(我需要 Linux 容器)。
  • 而且我不需要Docker EE(企业版),CE(桌面版)就可以了。

docker linux-containers windows-server-2016

3
推荐指数
1
解决办法
6017
查看次数