【发布时间】:2016-11-11 02:34:57
【问题描述】:
有什么方法可以从 Office Web 应用程序中删除按钮或完整的功能区。我想删除下载、添加到一个驱动器等。
示例网址如下
【问题讨论】:
标签: ms-office office-web-components
有什么方法可以从 Office Web 应用程序中删除按钮或完整的功能区。我想删除下载、添加到一个驱动器等。
示例网址如下
【问题讨论】:
标签: ms-office office-web-components
您必须编辑适当的 css 文件以: .Class 或#ID 等 显示:无;
单词可以在以下位置找到: "[驱动器在这里]:\microsoftwebapps\WebOneNote\Resources\1033\WordEditor.css"
Excel 可以在以下位置找到: "[驱动器]:\microsoftwebapps\ExcelServicesWfe_layouts\styles\excelribbon.css"
PowerPoint 可以在以下位置找到: "[驱动器在这里]:\microsoftwebapps\WebPPTViewer\pptresources\1033\stylesEdit.css"
我使用 IE 的 DOM 资源管理器来定位我想要删除的按钮的特定类和 ID。
祝你好运,这是一个巨大的痛苦**
一个例子是
"#btnOpenInClient{display:none;}"
这是我的第一个答案。我真的没有时间格式化,但它应该会有所帮助。我真的只是为我的 OWA 做了这个
【讨论】:
除了“不,这不可能”之外,没有其他有用的说法。只有客户端 Office 应用程序允许 UI 自定义,但仅限于隐藏或禁用功能区组件。
【讨论】:
下面的 powershell 脚本应该可以达到目的: 请根据您的目的调整 $hideElements 数组。
添加自定义 css 以隐藏文件菜单中的多个选项(信息、另存为、打印、共享、退出) 将修改的 OWA CSS 文件:WordEditor.css、WordViewer.css、stylesEdit.css、stylesRead.css、ExcelFrame.css
param (
[Parameter(Mandatory=$true)][string]$action
)
$action = $action.ToLower()
$acceptedActions = "apply","rollback"
if ($acceptedActions -notcontains $action) {
throw "Invalid action. Accepted actions: apply,rollback"
}
$owaPath = "C:\Program Files\Microsoft Office Web Apps"
$hideElements = "#_x{} a[id$=Save-Menu32]{display:none;} a[id$=SaveAs-Menu32]{display:none;} a[id$=Print-Menu32]{display:none;} a[id$=Share-Menu32]{display:none;} a[id$=Close-Menu32]{display:none;} #btnOpenInClient-Medium{display:none;} #btnFileSharing-Medium{display:none;}";
$cssFiles = "$owaPath\WebOneNote\Resources\1033\WordEditor.css", "$owaPath\WebPPTViewer\pptresources\1033\stylesEdit.css", "$owaPath\WebWordViewer\Resources\1033\WordViewer.css", "$owaPath\WebPPTViewer\pptresources\1033\stylesRead.css", $owaPath\ExcelServicesWfe\_layouts\1033\styles\ExcelFrame.css"
function ApplyPatch($cssFile, $hideElements) {
if(-Not (Get-Content $cssFile).Contains($hideElements)) {
$cssBackupFile = "$cssFile.bak"
Copy-Item -Path $cssFile -Destination $cssBackupFile -Force
Add-Content $cssFile $hideElements
Write-Host "Patch applied on $cssFile"
} else {
Write-Warning "Patch already applied on $cssFile."
}
}
function RollbackPatch($cssFile, $hideElements) {
$cssBackupFile = "$cssFile.bak"
if((Test-Path $cssBackupFile) -eq 1) {
Copy-Item -Path $cssBackupFile -Destination $cssFile -Force
Remove-Item $cssBackupFile
Write-Host "Rollback applied on $cssFile"
} else {
Write-Warning "Missing backup file for $cssFile. Cannot rollback"
}
}
If($action -eq "apply") {
foreach ($cssFile in $cssFiles) {
ApplyPatch $cssFile $hideElements
}
}
If($action -eq "rollback") {
foreach ($cssFile in $cssFiles) {
RollbackPatch $cssFile $hideElements
}
}
【讨论】: