提前谢谢你。我有一个sFTP服务器,Excel文件存储在那里。我想打开并读取文件从sFTP服务器,而无需下载到本地或任何地方。我可以得到一些想法。
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内容。
ClosedXML
stream
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(); } } }
1条答案
按热度按时间mf98qq941#
要使用ClosedXML,您必须在下载nuget包后在代码的顶部编写using语句。
我写了一个方法来读取Excel文件作为内存流通过SFTP。
然后,在
ClosedXML
nuget包的帮助下,从stream
读取excel内容。