最初のワークシート linqtoexcel の取得に問題があります。
私のコード:
var vitem = from oSelectedSheet in vFile.Worksheet<users>(1) select oSelectedSheet;
ファイル内のシートのデフォルト (sheet1) が存在しない場合、このコードは必要なものを提供しません。
これは機能し、
var vFile = new LinqToExcel.ExcelQueryFactory(sTargetFileName);
var worksheetNames = vFile.GetWorksheetNames();
worksheetNames.First()//got
位置によって最初のワークシートを取得するには、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
}