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

  • 相关阅读:
    wtforms 钩子函数
    sqlalchemy 单表增删改查
    sqlalchemy 数据库操作
    flask wtforms组件
    python----------文件操作
    编码 编码的转化
    集合、深浅copy
    字典
    sort 、sorted、range、join方法 数字的正序、倒叙、翻转
    for循环
  • 原文地址:https://www.cnblogs.com/gisoracle/p/3207907.html
Copyright © 2011-2022 走看看