<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: import Excel layer list to AutoCAD in .NET Forum</title>
    <link>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833843#M62930</link>
    <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've created a simple project to read the layernames from excel and add these to the drawing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's written in c# But there are enough converters around. Project is attached including an excel 2007 file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Good luck,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Irvin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;using System;
using System.Text;

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

using Excel = Microsoft.Office.Interop.Excel;

namespace CreateLayerFromExcel
{
    public class Layer
    {
        [CommandMethod("CreatLayersFromExcel")]
        public void CreatLayersFromExcel()
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            Excel.Range range;

            string str;
            int rCnt = 0;
            int cCnt = 0;

            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Open("c:\\temp\\test.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            range = xlWorkSheet.UsedRange;
            for (rCnt = 1; rCnt &amp;lt;= range.Rows.Count; rCnt++)
            {
                for (cCnt = 1; cCnt &amp;lt;= range.Columns.Count; cCnt++)
                {
                    str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
                    CreateLayer(str);
                    System.Windows.Forms.MessageBox.Show(str + " created!");
                }
            }

            xlWorkBook.Close(true, null, null);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (System.Exception ex)
            {
                obj = null;
                System.Windows.Forms.MessageBox.Show("Unable to release the Object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }

        private void CreateLayer(string layerName)
        {
            ObjectId layerId;
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead);
                if (lt.Has(layerName))
                {
                    layerId = lt[layerName];
                }
                else
                {
                    LayerTableRecord ltr = new LayerTableRecord();
                    ltr.Name = layerName;
                    //ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 2);

                    lt.UpgradeOpen();
                    layerId = lt.Add(ltr);
                    trans.AddNewlyCreatedDBObject(ltr, true);
                }
                trans.Commit();
            }
        }
    }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
    <pubDate>Tue, 23 Nov 2010 11:17:50 GMT</pubDate>
    <dc:creator>Anonymous</dc:creator>
    <dc:date>2010-11-23T11:17:50Z</dc:date>
    <item>
      <title>import Excel layer list to AutoCAD</title>
      <link>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833625#M62928</link>
      <description>&lt;P&gt;hi everyone&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;has anybody made a program and can share it here? both source code in vb.net or dll file is fine.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;thank you very much.&lt;/P&gt;</description>
      <pubDate>Tue, 23 Nov 2010 00:34:39 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833625#M62928</guid>
      <dc:creator>wang890</dc:creator>
      <dc:date>2010-11-23T00:34:39Z</dc:date>
    </item>
    <item>
      <title>Re: import Excel layer list to AutoCAD</title>
      <link>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833757#M62929</link>
      <description>&lt;P&gt;Take a look ath this example&lt;/P&gt;&lt;P&gt;&lt;A href="http://through-the-interface.typepad.com/through_the_interface/2007/08/creating-an-aut.html" target="_blank" rel="nofollow"&gt;http://through-the-interface.typepad.com/through_the_interface/2007/08/creating-an-aut.html&lt;/A&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Nov 2010 07:26:33 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833757#M62929</guid>
      <dc:creator>Hallex</dc:creator>
      <dc:date>2010-11-23T07:26:33Z</dc:date>
    </item>
    <item>
      <title>Re: import Excel layer list to AutoCAD</title>
      <link>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833843#M62930</link>
      <description>&lt;P&gt;Hi there,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;I've created a simple project to read the layernames from excel and add these to the drawing.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;It's written in c# But there are enough converters around. Project is attached including an excel 2007 file.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Good luck,&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Irvin&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;PRE&gt;using System;
using System.Text;

using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;

using Excel = Microsoft.Office.Interop.Excel;

namespace CreateLayerFromExcel
{
    public class Layer
    {
        [CommandMethod("CreatLayersFromExcel")]
        public void CreatLayersFromExcel()
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkBook;
            Excel.Worksheet xlWorkSheet;
            Excel.Range range;

            string str;
            int rCnt = 0;
            int cCnt = 0;

            xlApp = new Excel.ApplicationClass();
            xlWorkBook = xlApp.Workbooks.Open("c:\\temp\\test.xlsx", 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "\t", false, false, 0, true, 1, 0);
            xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

            range = xlWorkSheet.UsedRange;
            for (rCnt = 1; rCnt &amp;lt;= range.Rows.Count; rCnt++)
            {
                for (cCnt = 1; cCnt &amp;lt;= range.Columns.Count; cCnt++)
                {
                    str = (string)(range.Cells[rCnt, cCnt] as Excel.Range).Value2;
                    CreateLayer(str);
                    System.Windows.Forms.MessageBox.Show(str + " created!");
                }
            }

            xlWorkBook.Close(true, null, null);
            xlApp.Quit();

            releaseObject(xlWorkSheet);
            releaseObject(xlWorkBook);
            releaseObject(xlApp);
        }

        private void releaseObject(object obj)
        {
            try
            {
                System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
                obj = null;
            }
            catch (System.Exception ex)
            {
                obj = null;
                System.Windows.Forms.MessageBox.Show("Unable to release the Object " + ex.ToString());
            }
            finally
            {
                GC.Collect();
            }
        }

        private void CreateLayer(string layerName)
        {
            ObjectId layerId;
            Database db = HostApplicationServices.WorkingDatabase;
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                LayerTable lt = (LayerTable)trans.GetObject(db.LayerTableId, OpenMode.ForRead);
                if (lt.Has(layerName))
                {
                    layerId = lt[layerName];
                }
                else
                {
                    LayerTableRecord ltr = new LayerTableRecord();
                    ltr.Name = layerName;
                    //ltr.Color = Color.FromColorIndex(ColorMethod.ByAci, 2);

                    lt.UpgradeOpen();
                    layerId = lt.Add(ltr);
                    trans.AddNewlyCreatedDBObject(ltr, true);
                }
                trans.Commit();
            }
        }
    }
}&lt;/PRE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Tue, 23 Nov 2010 11:17:50 GMT</pubDate>
      <guid>https://forums.autodesk.com/t5/net-forum/import-excel-layer-list-to-autocad/m-p/2833843#M62930</guid>
      <dc:creator>Anonymous</dc:creator>
      <dc:date>2010-11-23T11:17:50Z</dc:date>
    </item>
  </channel>
</rss>

