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 に答える