private List <LayerInfo> GetLayerInfos(Excel.Worksheet sheet) { string b1, b2; Excel.Range range; // test import int nrRows, nrCols; nrCols = HEADER.Count; GetNrRows(sheet, out nrRows); b1 = GetCellBez(0, 0); b2 = GetCellBez(nrRows, nrCols); range = sheet.Range[b1, b2]; object[,] impMatrix = range.get_Value(Excel.XlRangeValueDataType.xlRangeValueDefault); var doc = _AcAp.Application.DocumentManager.MdiActiveDocument; var db = doc.Database; List <LayerInfo> biis = new List <LayerInfo>(); using (_AcDb.Transaction trans = doc.TransactionManager.StartTransaction()) { try { for (int r = 2; r <= nrRows; r++) { for (int c = 1; c <= nrCols; c++) { if (impMatrix[r, c] == null) { impMatrix[r, c] = ""; } } } for (int r = 2; r <= nrRows; r++) { //List<string> HEADER = new List<string>() { "Alter Layer", "Neuer Layer", "Farbe", "Linientyp", "Linienstärke", "Transparenz", "Beschreibung" }; LayerInfo layerInfo = new LayerInfo(); layerInfo.OldLayer = impMatrix[r, 1].ToString(); layerInfo.NewLayer = impMatrix[r, 2].ToString(); layerInfo.Color = impMatrix[r, 3].ToString(); layerInfo.SetLineType(impMatrix[r, 4].ToString(), trans, db); layerInfo.LineWeight = impMatrix[r, 5].ToString(); layerInfo.Transparency = impMatrix[r, 6].ToString(); layerInfo.Plot = impMatrix[r, 7].ToString(); layerInfo.Description = impMatrix[r, 8].ToString(); if (layerInfo.Ok) { biis.Add(layerInfo); } if (!string.IsNullOrEmpty(layerInfo.Errors)) { _Errors.Add(layerInfo.Errors); } } } finally { trans.Commit(); } } return(biis); }