如何使用C#打开和读取sFTP服务器中的excel文件

问题描述 投票:0回答:1

提前谢谢你。我有一个存储 excel 文件的 sFTP 服务器。我想打开并从 sFTP 服务器读取文件,而无需下载到本地或任何地方。我能得到一些想法吗?

excel sftp readfile
1个回答
0
投票

要使用 ClosedXML,您必须在下载 nuget 包后在代码顶部编写此 using 语句。

using ClosedXML.Excel;

我写了一个方法来通过 SFTP 读取 excel 文件作为内存流。

public static Stream GetFileStream(SftpClient sftpClient, string sourcePath)
{
    var memoryStream = new MemoryStream();

    sftpClient.DownloadFile(sourcePath, memoryStream);

    memoryStream.Position = 0;

    return memoryStream;
}

之后 在

ClosedXML
nuget包的帮助下,阅读
stream
的excel内容。

string host = @"host_name";
string remoteDirectory = "directory_path";
using (var sftp = new SftpClient(host, "username", "password"))
{
       sftp.Connect();
       Stream stream = GetFileStream(sftp, file_full_name);

       using (XLWorkbook excelWorkbook = new XLWorkbook(stream))
       {
           var name = excelWorkbook.Worksheet(1).Name;
           //do more things whatever you like as you now have a handle to the entire workbook.
           var firstRow = excelWorkbook.Worksheet(1).Row(2);
       }
}
© www.soinside.com 2019 - 2024. All rights reserved.