Beispiel #1
0
        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);
        }