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

w51jfk4q  于 2023-04-22  发布在  C#
关注(0)|答案(1)|浏览(267)

提前谢谢你。我有一个sFTP服务器,Excel文件存储在那里。我想打开并读取文件从sFTP服务器,而无需下载到本地或任何地方。我可以得到一些想法。

mf98qq94

mf98qq941#

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

using ClosedXML.Excel;

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

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 wb = new XLWorkbook(stream))
       {
            var ws = wb.Worksheet(1);

            foreach (var r in ws.RangeUsed().RowsUsed().Skip(1))
            {
                var cell1=r.Cell(1).GetString();
                var cell2=r.Cell(2).GetString();
            }
       }
}

相关问题