2

我在获取第一个工作表 linqtoexcel 时遇到问题。

我的代码:

 var vitem = from oSelectedSheet in vFile.Worksheet<users>(1) select oSelectedSheet;

如果文件中的默认表 (sheet1) 不存在,则此代码无法提供我需要的内容。

4

2 回答 2

3

这行得通,

     var vFile = new LinqToExcel.ExcelQueryFactory(sTargetFileName);
     var worksheetNames = vFile.GetWorksheetNames();

     worksheetNames.First()//got
于 2012-12-01T11:41:51.560 回答
0

要按位置获取第一个工作表,您需要使用 DocumentFormat.OpenXml。获得名称后,您可以使用 LinqToExcel 按名称获取工作表的内容。

string firstWorksheetName = null;
using (SpreadsheetDocument document = SpreadsheetDocument.Open(path, false))
{
    var workbookPart = document.WorkbookPart;
    firstWorksheetName = document.WorkbookPart.Workbook
        .Descendants<Sheet>()
        .OrderBy(d => d.SheetId.Value)
        .FirstOrDefault()
        ?.Name.ToString();
}

var results = new List<MappedType>();

using (var excel = new ExcelQueryFactory(path))
{
   ... // set up database engine, access and any mapping

   results = excel.WorksheetRange<MappedType>("A2", "J16384", firstWorksheetName).ToList();
}
if (results.Count() != 0) {
   ... // Do stuff
}
于 2015-12-07T03:33:22.437 回答