我有jquery函数将html表导出到word文件。功能很好,但我需要将word文件旋转到landsacpe方向。有人可以帮帮我吗?
这是js函数:
<SCRIPT type="text/javascript">
$(document).ready(function () {
$("#btnExport").click(function () {
var htmltable= document.getElementById('tblExport');
var html = htmltable.outerHTML;
window.open('data:application/msword,' + '\uFEFF' + encodeURIComponent(html));
});
});
Response.AddHeader("Content-Disposition", "attachment;filename=myfilename.docx");
答案 0 :(得分:19)
您可以通过在导出的HTML中包含CSS来设置页面方向,纸张大小和许多其他属性。有关可用样式的列表,请参阅MS Office prefixed style properties某些样式具有依赖项。例如,要设置mso-page-orientation,还必须设置页面大小,如下面的代码所示。
<强>更新:
强>
在FireFox,Chrome,Opera,IE10-11中使用Word 2010-2013进行测试。较小的代码更改可以使用Chrome和IE10。不适用于缺少window.Blob对象的旧版浏览器(IE&lt; 10)。如果收到&#34; createObjectURL不是函数&#34;也请看这篇SO帖子。错误:https://stackoverflow.com/a/10195751/943435
@page WordSection1{
mso-page-orientation: landscape;
size: 841.95pt 595.35pt; /* EU A4 */
/* size:11.0in 8.5in; */ /* US Letter */
}
div.WordSection1 {
page: WordSection1;
}
要查看完整的工作演示,请参阅:https://jsfiddle.net/78xa14vz/3/
用于导出到Word的Javascript:
function export2Word( element ) {
var html, link, blob, url, css;
css = (
'<style>' +
'@page WordSection1{size: 841.95pt 595.35pt;mso-page-orientation: landscape;}' +
'div.WordSection1 {page: WordSection1;}' +
'</style>'
);
html = element.innerHTML;
blob = new Blob(['\ufeff', css + html], {
type: 'application/msword'
});
url = URL.createObjectURL(blob);
link = document.createElement('A');
link.href = url;
link.download = 'Document'; // default name without extension
document.body.appendChild(link);
if (navigator.msSaveOrOpenBlob ) navigator.msSaveOrOpenBlob( blob, 'Document.doc'); // IE10-11
else link.click(); // other browsers
document.body.removeChild(link);
};
HTML:
<button onclick="export2Word(window.docx)">Export</button>
<div id="docx">
<div class="WordSection1">
<!-- The html you want to export goes here -->
</div>
</div>