0
ExcelFormat.OpenXml 2.5.0ライブラリを使用してExcelファイルから値を読み取るC#コードを作成しています。 Excelには3つの列があります。私のプログラムは3つの列の値を読み、IEnumerable<ShipViewModel>
excelから値を読み取り、viewmodelタイプのリストコレクションに格納
マイビューモデルは基本的に3つのプロパティが含まれて返すリストのコレクション内の値を格納する必要があります。私はのためのループで収集リストを移入で探しています
public List<ShipViewModel> OpenSpreadsheetDocument(string filepath)
{
List<ShipViewModel> model = new List<ShipViewModel>();
// Open a SpreadsheetDocument based on a filepath.
using (SpreadsheetDocument spreadsheetDocument = SpreadsheetDocument.Open(filepath, false))
{
WorkbookPart workbookPart = spreadsheetDocument.WorkbookPart;
WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();
SheetData sheetData = worksheetPart.Worksheet.Elements<SheetData>().First();
string text;
foreach (Row r in sheetData.Elements<Row>())
{
foreach (Cell c in r.Elements<Cell>())
{
text = c.CellValue.Text;
Console.Write(text + " ");
}
}
}
}
をExcelファイルを読むためにロジック
public class ShipViewModel
{
public string Column1 { get; set; }
public string Column2 { get; set; }
public string Column3 { get; set; }
}
以下のコードを参照してください。例えば以下のコードを参照してください。あなたは上記のループをチェックすると しかし、列2およびCOLUMN3はケースではありません列1の同じセルの値が含まれます。セルの値は、次の反復中にのみ変化します。
ShipViewModel shipViewModel = new ShipViewModel();
shipViewModel.Column1 = c.CellValue.Text;
shipViewModel.Column2 = c.CellValue.Text;
shipViewModel.Column3 = c.CellValue.Text;
model.Add(shipViewModel);
Interop.Excelを使用していますか? – Aravind
こんにちはAravind。私はDocumentFormat.OpenXmlを使用しています。2.5.0 – Tom
影響を受けるセルの数を知っているので、ループのためにセルをドロップした場合、rに何を持っているかに基づいてshipViewModel.Column#へのマッピングを行います。 (あなたがテキストを持っているところ= ...) – nocturns2