阅读excel文件,而不需要在服务器中的整个文件

我想获取用户的excel文件的列名和数量,但是我不能将整个文件发送到服务器,但只是它的一些第一个字节(足以读取第一行)。 我怎么能在C#中做到这一点? 有没有办法不发送整个Excel文件,并阅读第一行? 正如我所知,我们需要文件path来读取一个Excel文件,但我想只使用一小部分文件,如stream:在代码下面我使用“ExcelDataReader”来读取文件:

public List<string> Getheader() { List<string> headers = new List<string>(); byte[] hdrToRead = System.Text.Encoding.UTF8.GetBytes(remainedXlsStr); MemoryStream stream = new MemoryStream(hdrToRead); IExcelDataReader excelReader = null; switch (currentFileType) { case (XlsType.xlsx): { excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream); break; } case (XlsType.xls): { excelReader = ExcelReaderFactory.CreateBinaryReader(stream); break; } case (XlsType.notSupported): { break; } } if (excelContent.HasHeader) excelReader.IsFirstRowAsColumnNames = true; if (excelReader.Read()) { // first row for (int i = 0; i < excelReader.FieldCount; i++) { // fieldType = excelReader.GetValue(i).GetType(); headers.Add(excelReader.GetValue(i).ToString()); } } return headers; } 

… 谢谢

我不知道有什么方法来读取部分压缩文件(xlsx),并且COM和ODBC作为访问xls文件的方式都需要具有整个文件。 如果你真的想给自己的溃疡,你可以追踪xls文件规范,并找出如何parsing文件的初始字节,但是你正在尝试做的是一个非常有限的用例,所以我怀疑你会find任何可以为你做的事情,甚至在前进的道路上给予你很大的帮助。