两个常用的功能,将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
两个常用的功能,将shp数据属性转成TXT和Excel(转)的更多相关文章
- Windows校验文件哈希hash的两种常用方式
大家经常都到哪儿去下载软件和应用程序呢?有没想过下载回来的软件.应用程序或资源是否安全呢?在 Windows 10 和 Office 2016 发布当初,很多没权限的朋友都使用第三方网站去下载安装映像 ...
- RealView编译器常用特有功能(转)
源:RealView编译器常用特有功能 一. 关键字和运算符 1. __align(n):指示编译器在n 字节边界上对齐变量. 对于局部变量,n 值可为 1.2.4 或 8. 对于全局变量,n 可以具 ...
- Impala系列: Impala常用的功能函数
--=======================查看内置的函数--=======================hive 不需要进入什么内置数据库, 即可使用 show functions 命令列出 ...
- Pandas常用基本功能
Series 和 DataFrame还未构建完成的朋友可以参考我的上一篇博文:https://www.cnblogs.com/zry-yt/p/11794941.html 当我们构建好了 Series ...
- 常用js功能函数汇总(持续更新ing)
////////////////////获取元素属性/////////////////// function getStyle(obj,name) { if(obj.currentStyle) { r ...
- Spring Cloud Config采用Git存储时两种常用的配置策略
由于Spring Cloud Config默认采用了Git存储,相信很多团队在使用Spring Cloud的配置中心时也会采用这样的策略.即便大家都使用了Git存储,可能还有各种不同的配置方式,本文就 ...
- 【比赛打分展示双屏管理系统-加强版】的两个ini配置文件功能解释及排行榜滚动界面的简答配置等
加强版目录下有两个ini文件,功能解释如下: 1. ScoreTip.ini: bScoreTip:如果为1,可以启用 回避 功能 或 高低分差值超出 iScoreRange 的 提示功能. iSco ...
- iOS常用小功能
CHENYILONG Blog 常用小功能 技术博客http://www.cnblogs.com/ChenYilong/ 新浪微博http://weibo.com/luohanchenyilong ...
- Gson Json 序列号 最常用的功能 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
随机推荐
- 手势识别官方教程(7)识别缩放手势用ScaleGestureDetector.GestureDetector和ScaleGestureDetector.SimpleOnScaleGestureListener
Use Touch to Perform Scaling As discussed in Detecting Common Gestures, GestureDetector helps you de ...
- poj炮兵阵地(状压)(25+10+20=55)
http://poj.org/problem?id=1185 刚开始思路就错了 想着用保存这一行的状态 然后再去枚举前面两行的状态 这样不能保证前面两行的状态同时满足要求 正解:保存两行的状态 再依次 ...
- 制作LiveCD
1) 需要的工具Redhat9.0.VMware虚拟机,选择用grub作loader 2) 制作ramdisk A) cd /usr/local && mk ...
- 发布网站,报Access to the path is denied的解决办法
错误: Server Error in '/' Application.---------------------------------------------------------------- ...
- jquery如何选择带有多个class的元素
依次过滤$(“.good”).filter(“.list”).filter(“.Card”) 属性选择$(“[class='good list Card']“);此处 顺序必须一致才行 直接直接用 $ ...
- MVC3.0 中Razor 学习
随着MVC3.0RTM版本的发布,最近将公司的项目从MVC2.0升级到MVC3.0.同时打算在MVC3中全面使用Razor模板引擎.现将Razor学习拿出来和大家分享,如果存在不足的地方欢迎您指出. ...
- LoadRunner调用Java程序—性能测试-转载
LoadRunner调用Java程序—性能测试 为了充分利用LoadRunner的场景控制和分析器,帮助我们更好地控制脚本加载过程,从而展现更直观有效的场景分析图表.本次将重点讨论LoadRunn ...
- nodejs调试工具node-inspector入门随笔
最近打算玩玩node. 众所周知,在前端,调试代码有一众天然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起.但是到了node,情况就不一样了,js 代码不再运行在单纯 ...
- oracle 创建索引思考(转)
在Oracle数据库中,创建索引虽然比较简单.但是要合理的创建索引则比较困难了. 笔者认为,在创建索引时要做到三个适当,即在适当的表上.适当的列上创建适当数量的索引.虽然这可以通过一句话来概括优化的索 ...
- 如何使用 RDP 或 SSH 连接到 Azure 虚拟机
使用 RDP 或 SSH 连接到 Azure 虚拟机 本文简要概述了如何使用远程桌面控制协议 (RDP) 或安全外壳(Secure Shell,SSH)客户端登录 Azure 虚拟机.它还包括要求和故 ...