两个常用的功能,将shp数据属性转成TXT和Excel

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/Prince999999/article/details/90753222

 //  第一 转成txt



public static void ConvertTable2Txt(ITable pTable, string pFilePath)
        {


            int pIndex = 0;

            string pStrLast = "";

            string pTxtFile = System.IO.Path.Combine(pFilePath, (pTable as IDataset).Name + ".txt");

            System.IO.FileStream pTxt1 = new System.IO.FileStream(pTxtFile, FileMode.Create);

            StreamWriter pStrW = new StreamWriter(pTxt1);

            int pFieldCount = pTable.Fields.FieldCount;



            ICursor pCursor = pTable.Search(null, false);

            IRow pRow = pCursor.NextRow();

            //写入字段



            for (int i = 0; i < pFieldCount; i++)
            {
                if (pTable.Fields.get_Field(i).Type != esriFieldType.esriFieldTypeGeometry)
                {
                    pStrLast = pStrLast + "," + pTable.Fields.get_Field(i).Name;
                }


            }

            pStrLast = pStrLast.Substring(1, pStrLast.Length - 1);

            pStrW.WriteLine(pStrLast);


            //写入值

           
            while (pRow != null)
            {
                pStrLast = "";
                pIndex++;
                for (int i = 0; i < pFieldCount; i++)
                {
                    if (pTable.Fields.get_Field(i).Type != esriFieldType.esriFieldTypeGeometry)
                    {
                        pStrLast = pStrLast+ "," + pRow.get_Value(i).ToString();
                    }

                   
                }
                pStrLast =pStrLast.Substring(1, pStrLast.Length - 1);

                    pStrW.WriteLine(pStrLast);

                if(pIndex==50)
                {
                 
                    pStrW.Flush();
                    pIndex=0;
                }
                
                pRow = pCursor.NextRow();


            }
          
            pStrW.Close();

        }

第二 转成转成Excel



        public static void ConvertTable2Excel(ITable pTable, string pFilePath)
        {


            int pIndex = 1;


            string pTxtFile = System.IO.Path.Combine(pFilePath, (pTable as IDataset).Name + ".xlsx");

            int pFieldCount = pTable.Fields.FieldCount;



            ICursor pCursor = pTable.Search(null, false);

            IRow pRow = pCursor.NextRow();

            //写入字段



          Microsoft.Office.Interop.Excel.Application  pExcel = new Microsoft.Office.Interop.Excel.Application();

            pExcel.Workbooks.Add(true);

            pExcel.Visible = false;


            Workbook pWorKbook = pExcel.Workbooks[1];

           Worksheet xSheet = (Microsoft.Office.Interop.Excel.Worksheet)pWorKbook.Worksheets[1];

           xSheet.Name = (pTable as IDataset).Name;


            xSheet.SaveAs(pTxtFile, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);


             //字段
            for (int i = 0; i < pFieldCount; i++)
            {

                    xSheet.Cells[1, i + 1] = pTable.Fields.get_Field(i).Name;
                    
            }      
            //写入值


            while (pRow != null)
            {
                
                pIndex++;
                for (int i = 0; i < pFieldCount; i++)
                {
                   

                   xSheet.Cells[pIndex, i + 1] = pRow.get_Value(i).ToString();                  

                }


                pRow = pCursor.NextRow();


            }

            pWorKbook.Save();
            pExcel.Quit();


        }

第三 采用GP工具。

猜你喜欢

转载自blog.csdn.net/Prince999999/article/details/90753222
今日推荐