ユーザーの 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;
}
... ありがとう