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

92 篇文章 5 订阅

 //  第一 转成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工具。

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值