2
我想要得到的名稱和用戶的Excel文件的列數,但我不能發送整個文件到服務器,但只是一些它的第一個字節(足以讀取第一行)。我怎麼能在C#中做到這一點?有沒有辦法不發送整個Excel文件,並閱讀第一行?據我所知,我們需要讀取Excel文件的文件路徑,但我想只是使用文件的一小部分如流: 在下面的代碼我使用「ExcelDataReader」讀文件:讀取Excel文件,而無需整個文件服務器
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;
}
... 謝謝
我真的很感謝您抽出寶貴的時間來回答我的問題:) – user2326105 2013-04-27 07:32:07
可以*也*表明通過投票認爲升值它:) – 2013-04-27 21:52:50