不装Excel如何生成excel文件


function export_part {
              param ($part)
                $WorkSheetXmlDoc = New-Object System.Xml.XmlDocument
                $WorkSheetXmlDoc.Load($part.GetStream([System.IO.FileMode]::Open,[System.IO.FileAccess]::Read))
                $WorkSheetXmlDoc.Save("D:\Users\mac\Desktop\shee1.xml")
          }
function save_part {
            param ($pkg)
            $WorkSheetXmlDoc = New-Object System.Xml.XmlDocument
            $WorkSheetXmlDoc.Load("D:\Users\mac\Desktop\shee1.xml")
            $Uri_xl_worksheets_sheet_xml = New-Object System.Uri -ArgumentList ("/xl/worksheets/sheet1.xml", [System.UriKind]::Relative)
            $newsheet=$Pkg.CreatePart($Uri_xl_worksheets_sheet_xml,"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml");
            $WorkSheetXmlDoc.Save($newsheet.GetStream([System.IO.FileMode]::Open,[System.IO.FileAccess]::Write))              
}
#首先做到可以打开excel文件
[Reflection.Assembly]::LoadWithPartialName("WindowsBase")
$exPkg = [System.IO.Packaging.Package]::Open("D:\Users\mac\Desktop\sample\sample1.xlsx", [System.IO.FileMode]::Open)
#列出每个part的uri
#foreach($i in $exPkg.getParts()){write-host $i.Uri}



#获取单个part,并保存在外面
#$sheet=$exPkg.GetPart("/xl/worksheets/sheet1.xml")
#export_part $sheet


#经过测试,xlsx文件就是一个普通的zip文件,可以在外面编辑好xml文件,然后放进去
#接下来验证对xlsx内部文件的删除处理。删除成功
$expkg.DeletePart("/xl/worksheets/sheet1.xml")
#接下来验证,把外部xml文件放回去
#逻辑:用xmldoc读取外部xml文件,然后使用xmldoc save方法,把内容写入流
save_part $expkg
#后面研究,如何替换xml里面的内容,最后形成一份好用的xlsx文件
#关闭
$exPkg.Close()

转载于:https://my.oschina.net/pearma/blog/1552256

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值