前言:
此刻咱们对“js选择文件夹路径将下载的文件存储到选择的路径”大约比较着重,各位老铁们都需要了解一些“js选择文件夹路径将下载的文件存储到选择的路径”的相关知识。那么小编也在网上搜集了一些有关“js选择文件夹路径将下载的文件存储到选择的路径””的相关文章,希望小伙伴们能喜欢,兄弟们快快来学习一下吧!案例需求:
实现wps的个性化另存为
在保存时执行一系列客开动作对文件选择器的默认值进行修改Title 标题(下图TestPDF)FilterIndex 欲保存的文件类型(下图:文件类型(T))InitialFileName 默认文件名称(下图:文件名(N))场景:适用于老版本OA助手无法另存为的情况自定义另存为弹窗实现文件格式的转换,可转为/html/docx/doc/dot/pdf/ofd等...案例可能遇到的坑:
暂无代码流程
1. 弹出文件选择器FileDialog(2) 2. 定义文件选择器相关属性 3. 识别传入的文件名、文件类型,获取文件选择器中的路径 4. 使用SaveAs2另存为文件至对应格式代码实现
// 01. 更新func_tabcontrol.js文件中OnBtnSaveAsLocalFile函数/** * 执行另存为本地文件操作 * @param {*} defaultType 另存为时指定默认后缀 docx/doc/wps/html/pdf等... 可空 * @param {*} defaultName 另存为时指定默认文件名 可指定路径 可空 * @param {*} title 另存为弹窗的标题Title 可空 * @param {*} doc 欲另存的文档 默认为当前文档 可空 */function OnBtnSaveAsLocalFile(defaultType, defaultName, title, doc) { //初始化临时状态值 wps.PluginStorage.setItem(constStrEnum.OADocUserSave, false); wps.PluginStorage.setItem(constStrEnum.IsInCurrOADocSaveAs, false); if (!WPS_Enum.FileExtTypes) init_FileExtTypes(); //检测是否有文档正在处理 var l_doc = doc ? doc : wps.WpsApplication().ActiveDocument; if (!l_doc) { alert("WPS当前没有可操作文档!"); return; } // 设置WPS文档对话框 2 FileDialogType:=msoFileDialogSaveAs var l_ksoFileDialog = wps.WpsApplication().FileDialog(2); l_ksoFileDialog.Title = title ? title : "另存为"; l_ksoFileDialog.FilterIndex = defaultType ? WPS_Enum.FileExtTypes[defaultType] : WPS_Enum.FileExtTypes.docx; l_ksoFileDialog.InitialFileName = defaultName ? defaultName : l_doc.Name; //默认为文档名称 if (l_ksoFileDialog.Show() == -1) { // -1 代表确认按钮 wps.PluginStorage.setItem(constStrEnum.OADocUserSave, true); //设置保存为临时状态,在Save事件中避免OA禁止另存为对话框 wps.Application.ActiveDocument.SaveAs2(l_ksoFileDialog.SelectedItems.Item(1), returnFormatType(l_ksoFileDialog.SelectedItems.Item(1))) pSetNoneOADocFlag(l_doc); wps.PluginStorage.setItem(constStrEnum.OADocUserSave, false); wps.ribbonUI.Invalidate(); //刷新Ribbon的状态 };}// 02. 在func_tabcontrol.js文件中添加init_FileExtTypes、returnFormatType函数/** * init FileExtTypes * 初始化枚举 考虑到每台机器的Filters可能不同,在调用前先动态遍历一次 * @author Li Zuxian */function init_FileExtTypes() { WPS_Enum.FileExtTypes = {} const filters = wps.WpsApplication().FileDialog(2).Filters; for (let i = 1; i <= filters.Count; i++) { let items = filters.Item(i) items = items.Extensions.matchAll(/\*\.([\w]*)/g) for (const item of items) { WPS_Enum.FileExtTypes[item[1]] = i } }}//返回文件对应的类型function returnFormatType(newName) { var typeList = [{ type: "ofd", value: 102 }, { type: "dot", value: 1 }, { type: "txt", value: 2 }, { type: "rtf", value: 6 }, { type: "html", value: 8 }, { type: "mht", value: 9 }, { type: "htm", value: 10 }, { type: "xml", value: 11 }, { type: "docx", value: 12 }, { type: "docm", value: 13 }, { type: "dotx", value: 14 }, { type: "dotm", value: 15 }, { type: "doc", value: 16 }, { type: "pdf", value: 17 }, { type: "uot", value: 1 }, { type: "uof", value: 111 }] let splitArr = newName.split(".") let newType = splitArr[splitArr.length - 1]; let formatType = 12; typeList.map((item) => { if (item.type == newType) { formatType = item.value } }) return formatType;}//例:OnBtnSaveAsLocalFile('pdf', 'D:/Tools/123.pdf', 'TestPDF')OnBtnSaveAsLocalFile('html', 'D:/123.html')OnBtnSaveAsLocalFile()
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。