本文重点讲解第一步,手动在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行列转置三步走相关推荐

  1. excel 重复方差分析_如何在Excel中运行方差方差分析的两种方法

    excel 重复方差分析 Recently, we looked at how to Perform a One-Way Analysis of Variance in Excel. In today ...

  2. Python学习笔记(一)三步走安装pip

    pip是用来方便地管理Python的第三方包的,由于此前玩Python仅仅是浅尝辄止,用的是python(x,y),但是这里并不代表你想用什么包都能从里面找到的,所以我把python(x,y)卸了,然 ...

  3. 学python对excel有用吗_已经会Excel了还需要学python吗?

    作为一名现代职场人,相信Excel是我最熟悉不过的工具了.作为数据处理的日常办公软件,Excel以其优秀的数据分析处理功能,简单易用的操作成为大家的最爱.也许你不知道python是什么,但是一定知道E ...

  4. excel数据透视_取消透视Excel数据的快速方法

    excel数据透视 Before you can build a flexible pivot table, you might need to rearrange the data. For exa ...

  5. excel冻结窗口_你会Excel吗?14个Excel神奇功能+8个Excel小技巧+Excel常见快捷键,提升办公效率...

    14个Excel神奇功能+8个Excel小技巧+Excel常见的一些快捷键,让你的Excel技能6得飞起,每天都能提前2小时下班. 14个Excel神奇功能 一.<Excel如何快速还原隐藏行& ...

  6. excel自动筛选_自动更改Excel筛选器标题

    excel自动筛选 There was a question about Excel Advanced Filter criteria on the Tech Republic blog recent ...

  7. excel mysql插件_智分析Excel插件

          智分析Excel插件官方版是一款好用的自助分析云平台,智分析Excel插件官方版是一款面向业务用户的EXCEL插件工具,智分析Excel插件官方版支持各类云端数据库.本地excel数据导入 ...

  8. excel切片器_不喜欢Excel自带的切片器样式,我一秒设置个性化切片器

    一般在excel中插入的切片器都是默认样式的,即使根据自带模板修改之后也不是很满意的话,小编来教大家设置自己的切片器吧! 库存切片器 第一步:插入切片器 第二步:选择产品名称确定,更改产品名称后实时显 ...

  9. lisp倒入excel数据画图_如何将EXCEL中的数据导入到CAD中,绘制成曲线|

    如何将EXCEL中的数据导入到CAD中,绘制成曲线 如果不用软件,只用CAD自身功能的话可以通过多段线生成你需要的曲线.你给出你的曲线函数,我给你生成曲线坐标以及CAD能自动绘制的文件格式 怎样将ca ...

  10. excel mysql 开发_最新技术让excel秒变web数据库

    Excel是微软产品线中深受人们喜爱的产品,对很多精明的企业管理者而言,更是如此.<硅谷钢铁侠>中多次提到埃隆马斯克,常常使用Excel来评估商业计划是否靠谱,不论是评估购买苏联人的火箭做 ...

最新文章

  1. Numpy Axis
  2. 'objects' 报错问题
  3. 聚合(根)、实体、值对象精炼思考总结
  4. apache 给网站配置域名
  5. jdk8读取文件_JDK 7和JDK 8中大行读取速度较慢的原因
  6. UVA 1025 A Spy in the Metro DP水题
  7. void start_kernel(void)分析 ! \linux-1.0\init\main.c
  8. MyEclipse非正常关闭问题
  9. CRT、ATL、MFC 三者介绍和关系
  10. mysql什么情况下死锁_2020-07-08:mysql只有一个表a,什么情况下会造成死锁,解决办法是什么?...
  11. 南京工程学院《DSP技术及应用》期末试卷
  12. Linux的编辑器、编译器、配置文件、及其安装方法的理解
  13. 《SteamVR2.2.0开发指南》(Yanlz+Unity+XR+SteamVR+OpenXR+OpenVR+Valve+VIVE+Oculus+Interaction+VR+立钻哥哥++ok++)
  14. 微软dowhy 项目 原理_Microsoft的DoWhy是因果推理的出色框架
  15. 大数据模型-银行客户细分与个人客户流失预警
  16. 初学者c语言心里测试小项目
  17. CCF A类会议或期刊----多视图聚类近两年论文
  18. BLDC四大方案(转)
  19. ERROR: Could not build wheels for numpy which use PEP 517 and cannot be installed directly
  20. writely is cool!

热门文章

  1. 计算机无法访问dota服务器,dota2无法与任何服务器建立连接如何解决
  2. UE TurnInPlace 转身动画的解决方案和常见问题
  3. 十大热门编程语言优缺点对比
  4. 微信公众号的图片引用
  5. iOS 16适配屏幕旋转强制转屏切换大总结
  6. 「PHP 是最好的语言」这个梗是怎么来的?
  7. 使用谷歌地图在 Flutter 应用中添加地图
  8. 计量笔记(二) | OLS估计量性质
  9. 正点原子stm32F407 lcd.c 增加 画实心圆 函数
  10. python入门自学软件手机版_python编程入门