python excel行列转置_用powershell+excel行列转置三步走
本文重点讲解第一步,手动在excel表中输入公式,或者用powershell自动输入公式。
第二步,用powershell向excel中写入数据,略。
第三步,用powershell从excel中读取数据,略。
本人原创拙作,声明网上唯一。
搜索过的关键字:powershell excel 行列 转置 转换
搜索过的引擎:百度 bing
powershell 传教士 原创文章 2014-07-12,2015-03-03,2016-07-17 修改。 允许转载,但必须保留名字和出处,否则追究法律责任
---【第一章 概述】---
用excel + powershell来数据处理,太方便。 大型数据处理当然要用几种主流的数据库了,这不用多说。对于差不多少于一亿条的【中小型】数据处理, 建议用excel+powershell来处理。优点如下:
1 excel是c代码的编译程序,性能没问题,要比powershell处理得快。64位win的话,用64位excel就更好了。
2 excel简单,会的人多。
3 excel可以输出各种统计图,表,打印。
4 每个excel单元格,可以看作是一个变量。首先设置单元格的格式,也就是变量类型是数值啊还是日期等。然后在变量中存东西。
5 每个excel公式可以看成是表达式,或者叫做存储过程。
6 每个excel文件(工作簿),可以认为是一个数据库。每个工作表可以看作是数据库中的表,表中含有的行是记录,列是字段。
7 只用powershell做存取,不做任何运算,运算都丢给excel公式!。用excel公式写具体的数据处理算法,如第三个单元格中的内容等于第一个单元格加第二个单元格。
8 excel实际上是可以连接数据源,也就是从数据库中存取常用的数据类型。
---【第二章 人+键盘+鼠标+excel 手动实现行列转置 教程】---
从excel2007开始, excel 支持的最大行数 = 1048576 excel 支持的最大列数 = 16384 所以excel行列转置最多支持16384 x 16384 这样方阵的转置。
首先讲解如何手动操作,设置转置:
1打开excel,在sheet1中,做好一个表,如图1
2在sheet2中,选中第一个格,输入公式=TRANSPOSE(Sheet1!A1:D11),然后选中a1---d11,按f2,按ctrl+shift+enter
3修改第一个工作本中的内容,第二个工作本也变了,证明成功。
一般来讲,建议按照上述教程,用键盘鼠标,手动输入公式。而不是powershell输入公式。而powershell只做数据读写。
---【第三章 用powershell向sheet1写入数据 (略)】---
---【第四章 用powershell向sheet2写入公式】---
一般来讲,建议按照上述教程,用键盘鼠标,手动输入公式。而不是powershell输入excel公式。而powershell只做数据读写。当然如果你非要用excel输入公式,那么请看:
#powershell 行列转置例子
{=TRANSPOSE(Sheet1!A1:CV100)}
{=TRANSPOSE(Sheet1!A1:KUR8000)}#>
Write-Warning '支持最大行列为 16384,行列可以不是正方形,但建议在6000 * 6000条以下,大内存可以8000 * 8000'$script:脚本存储路径 = Split-Path -Parent $myinvocation.mycommand.path$Env:Path += ";$script:脚本存储路径;"
#region main
$excel文件 ='a:\pscode\temp122\z转置测试002.xlsx'$excel对象 = New-Object -comobject Excel.Application$SheetName = "sheet2"
$Excel工作簿 = $excel对象.Workbooks.Open($excel文件)$Excel工作表 = $Excel工作簿.Worksheets.Item($SheetName)$excel对象.Visible = $true
#region 向sheet2写入公式#一般来讲,建议按照上述教程,用键盘鼠标,手动输入公式。而不是powershell输入公式。而powershell只做数据读写。#没找到直接写入公式的方法,暂时先用笨方法。
[system.reflection.assembly]::loadwithpartialname("System.Windows.Forms") | Out-Null$范围1 = $Excel工作表.range("A1:CV100")
[string]$temp0001 = '=TRANSPOSE{(}Sheet1!A1:CV100{)}'$范围1.select()#此为 powershell 传教士 原创文章 中配套的脚本 2014-07-12
#公式栏
sleep 1[System.Windows.Forms.SendKeys]::SendWait("{F3}") | Out-Null#粘贴
sleep 1[System.Windows.Forms.SendKeys]::SendWait($temp0001) | Out-Null
sleep1[System.Windows.Forms.SendKeys]::SendWait("^+{ENTER}") | Out-Null#重新计算公式
sleep 1[System.Windows.Forms.SendKeys]::SendWait("+{F9}") | Out-Null
sleep1
$excel对象.Visible = $false
#powershell 行列 转置 转换 excel powershell传教士 2014-07-12
sleep 2
$excel对象.save()
sleep2
#endregion 向sheet2写入公式
#region 向sheet1写入行列数据#略,注意,写完保存#endregion 向sheet1写入行列数据
#region 从sheet2读取值#略,注意,过滤 “0”值#endregion 从sheet2读取值
#region 扫尾
Start-Sleep 2
$Excel工作簿.close()
Remove-Item "$home\documents\resume.xlw" -ErrorAction:SilentlyContinue
Start-Sleep 2
$excel对象.save()
sleep2
$excel对象.Quit()
Start-Sleep 2[System.Runtime.InteropServices.Marshal]::ReleaseComObject($范围1)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($Excel工作表)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($Excel工作簿)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel对象)
[System.Runtime.InteropServices.Marshal]::ReleaseComObject($excel对象)
Start-Sleep 2[System.GC]::Collect()
[System.GC]::WaitForPendingFinalizers()
Remove-Item "$home\documents\resume.xlw" -ErrorAction:SilentlyContinue
Write-Host "------------end-------------"Write-Host "---脚本运行完毕后,请输入exit命令。或,关闭powershell窗口,后台excel.exe即可自动退出。---"exit0
#endregion 扫尾
#endregion main
---【第五章 用powershell从sheet2读取数据 (略)】---
---【第六章 值的后续处理】---
用powershell从excel中读取,得到m行n列的数据后,可以:
输入,输出xml文件-------------powershell就有Select-Xml,ConvertTo-Xml相关处理命令。
输入,输出json-------------ConvertFrom-Json,ConvertTo-Json
输出html-------------ConvertTo-Html
输入,输出csv--------------ConvertFrom-Csv,ConvertTo-Csv,Export-Csv,Import-Csv
---【后记】---
使用【原厂】or【第三方】库之辩:
任何语言处理excel,要么调用原厂的库(即excel com对象),要么调用第三方的库。
第三方插件的好处是【分离】。无需装office。但明显有兼容性问题。这些第三方excel库,有些免费,有些也收费。
而office原厂excel com 插件,需要安装office,有收费问题。但是自家东西100%兼容。
问:有哪些语言可以处理excel?
答: 我所知道的
java + 第三方模块
c# + 第三方模块
c# + excel的com对象
vbs + excel的com对象
powershell + excel的com对象
powershell + 第三方模块
python + 第三方模块
使用【程序语言】or【sql】,哪种方法处理我excel中的数据更好?之辩:
powershell+excel处理数据的本质就是。用脚本语言+【数据处理逻辑】搬箱子(excel单元格)。 这种搬箱子是必要的,比把txt,csv导入库,然后用sql处理好太多,理由如下:
1 因为数据库的列类型是锁定的。而且sql在字段之间搬数据不方便。excel没有这类问题。
2 关系型数据库中没有【第几行】这个概念。
3 关系型数据库是严格的行列表,而excel中有【m行合并的单元格】,【n列合并的单元格】。
4 excel表中的数据,有可能不是很规范,需要处理后才是严格的行列数据,才能入库。
-完-
python excel行列转置_用powershell+excel行列转置三步走相关推荐
- excel 重复方差分析_如何在Excel中运行方差方差分析的两种方法
excel 重复方差分析 Recently, we looked at how to Perform a One-Way Analysis of Variance in Excel. In today ...
- Python学习笔记(一)三步走安装pip
pip是用来方便地管理Python的第三方包的,由于此前玩Python仅仅是浅尝辄止,用的是python(x,y),但是这里并不代表你想用什么包都能从里面找到的,所以我把python(x,y)卸了,然 ...
- 学python对excel有用吗_已经会Excel了还需要学python吗?
作为一名现代职场人,相信Excel是我最熟悉不过的工具了.作为数据处理的日常办公软件,Excel以其优秀的数据分析处理功能,简单易用的操作成为大家的最爱.也许你不知道python是什么,但是一定知道E ...
- excel数据透视_取消透视Excel数据的快速方法
excel数据透视 Before you can build a flexible pivot table, you might need to rearrange the data. For exa ...
- excel冻结窗口_你会Excel吗?14个Excel神奇功能+8个Excel小技巧+Excel常见快捷键,提升办公效率...
14个Excel神奇功能+8个Excel小技巧+Excel常见的一些快捷键,让你的Excel技能6得飞起,每天都能提前2小时下班. 14个Excel神奇功能 一.<Excel如何快速还原隐藏行& ...
- excel自动筛选_自动更改Excel筛选器标题
excel自动筛选 There was a question about Excel Advanced Filter criteria on the Tech Republic blog recent ...
- excel mysql插件_智分析Excel插件
智分析Excel插件官方版是一款好用的自助分析云平台,智分析Excel插件官方版是一款面向业务用户的EXCEL插件工具,智分析Excel插件官方版支持各类云端数据库.本地excel数据导入 ...
- excel切片器_不喜欢Excel自带的切片器样式,我一秒设置个性化切片器
一般在excel中插入的切片器都是默认样式的,即使根据自带模板修改之后也不是很满意的话,小编来教大家设置自己的切片器吧! 库存切片器 第一步:插入切片器 第二步:选择产品名称确定,更改产品名称后实时显 ...
- lisp倒入excel数据画图_如何将EXCEL中的数据导入到CAD中,绘制成曲线|
如何将EXCEL中的数据导入到CAD中,绘制成曲线 如果不用软件,只用CAD自身功能的话可以通过多段线生成你需要的曲线.你给出你的曲线函数,我给你生成曲线坐标以及CAD能自动绘制的文件格式 怎样将ca ...
- excel mysql 开发_最新技术让excel秒变web数据库
Excel是微软产品线中深受人们喜爱的产品,对很多精明的企业管理者而言,更是如此.<硅谷钢铁侠>中多次提到埃隆马斯克,常常使用Excel来评估商业计划是否靠谱,不论是评估购买苏联人的火箭做 ...
最新文章
- Numpy Axis
- 'objects' 报错问题
- 聚合(根)、实体、值对象精炼思考总结
- apache 给网站配置域名
- jdk8读取文件_JDK 7和JDK 8中大行读取速度较慢的原因
- UVA 1025 A Spy in the Metro DP水题
- void start_kernel(void)分析 ! \linux-1.0\init\main.c
- MyEclipse非正常关闭问题
- CRT、ATL、MFC 三者介绍和关系
- mysql什么情况下死锁_2020-07-08:mysql只有一个表a,什么情况下会造成死锁,解决办法是什么?...
- 南京工程学院《DSP技术及应用》期末试卷
- Linux的编辑器、编译器、配置文件、及其安装方法的理解
- 《SteamVR2.2.0开发指南》(Yanlz+Unity+XR+SteamVR+OpenXR+OpenVR+Valve+VIVE+Oculus+Interaction+VR+立钻哥哥++ok++)
- 微软dowhy 项目 原理_Microsoft的DoWhy是因果推理的出色框架
- 大数据模型-银行客户细分与个人客户流失预警
- 初学者c语言心里测试小项目
- CCF A类会议或期刊----多视图聚类近两年论文
- BLDC四大方案(转)
- ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly
- writely is cool!