zoukankan      html  css  js  c++  java
  • 两个常用的功能,将shp数据属性转成TXT和Excel(转)

    //转成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();


            }

    来自:http://www.gisall.com/html/63/151663-6857.html

  • 相关阅读:
    RabbitMQ 入门
    Spring boot 2.x 中使用redis
    spring boot 中 Cache 的使用
    vbs 入门
    移动端文本框被原生键盘弹出后挡住文本框
    HTML中添加音乐video embed audio
    input修改placeholder文字颜色
    vue中更换.ico图标报错路径找不到图片
    Chrome表单文本框自动填充黄色背景色样式
    请求头缺少 'Access-Control-Allow-Origin'
  • 原文地址:https://www.cnblogs.com/gisoracle/p/3207907.html
Copyright © 2011-2022 走看看