读取excel文件没有整个文件在服务器
本文关键字:文件 服务器 excel 读取 | 更新日期: 2023-09-27 18:11:02
我想获得用户的excel文件的列的名称和计数,但我不能将整个文件发送到服务器,但只是一些它的第一个字节(足以读取第一行)。我如何在c#中做到这一点?有没有办法不发送整个excel文件,并读取第一行?正如我所知,我们需要文件路径来读取excel文件,但我只想使用文件的一小部分,如流:在下面的代码中,我使用"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文件规范并弄清楚如何解析文件的初始字节,但你所要做的用例非常有限,所以我怀疑你会找到任何适合你的东西,甚至给你很大的帮助。