# mt **Repository Path**: msjzs/mt ## Basic Information - **Project Name**: mt - **Description**: excel 插件、提供一些自定义函数和菜单 - **Primary Language**: C# - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2023-01-30 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # About ![](screenshot.png) ```bash # 一、插件 1. 基于 ExcelDna 开发 2. 提供一些自定义函数(案例见sample.xlsx) 3. 提供一些菜单 # 二、环境 win11 + office365enterprise、其它环境未测试、可能失败 # 三、安装 1. 下载插件压缩包(https://gitee.com/msjzs/mt)、并解压得到两个 xll 文件(推荐解压位置 C:\Users\你的用户名\AppData\Roaming\Microsoft\AddIns) 2. 打开 Excel -> 开发工具 -> Excel 加载项 -> 勾选和两个 xll 同名的加载项 3. 重启 Excel 看到 M 菜单则加载成功 4. 安全信任问题、文件-右键-属性-常规-取消阻止-确定 # 四、卸载 1. 打开 Excel -> 开发工具 -> Excel 加载项 -> 取消勾选和两个 xll 同名的加载项 2. 移除两个 xll 文件(你之前解压位置 C:\Users\你的用户名\AppData\Roaming\Microsoft\AddIns) # 五、更新 1. 获取最新 xll 文件、https://gitee.com/msjzs/mt 2. 替换两个 xll 文件(你之前解压位置 C:\Users\你的用户名\AppData\Roaming\Microsoft\AddIns) # 六、定制 欢迎定制(收取一定费用) # 七、联系 Author: msjzs@outlook.com Wechat: msjzs2012 ``` # Function Collection ## String | function | what | eg | | ------------------------------ | ---------------------------------- | --------------------------------------------------- | | TextContains | 字串是否包含子串 | TextContains(A1,"X") | | TextContainsAll | 字串是否包含所有子串 | TextContainsAll(A1,{"A","B","C"}) | | TextContainsAny | 字串是否包含任意子串 | TextContainsAny(A1,{"A","B","C"}) | | TextStartsWith | 字串是否以指定子串开头 | TextStartsWith(A1,"A") | | TextEndsWith | 字串是否以指定子串结尾 | TextEndsWith(A1,"A") | | TextTrimStart | 移除字串开头的字符 | TextTrimStart(A1,"-") | | TextTrimEnd | 移除字串结尾的字符 | TextTrimEnd(A1,"-") | | TextTrim | 移除字串头尾的字符 | TextTrim(A1,"-") | | TextPadStart | 从头填充字串至指定长度 | TextPadStart(A1,10,"+") | | TextPadEnd | 从尾填充字串至指定长度 | TextPadEnd(A1,10,"+") | | TextPad | 从头尾填充字串至指定长度 | TextPad(A1,10,"+") | | TextClean | 移除给定字串中的标点符号或给定字符 | TextClean(A1,"=+") | | TextReplaceArray | 替换给定字串中的所有给定子串 | TextReplaceArray(A1,{",","。","?"},{",",".","?"}) | | TextReverse | 翻转字串 | TextReverse(A1) | | TextInsert | 字串指定位置插入子串 | TextInsert(A1,3,"xxx") | | TextToList | 字串列表 | TextToList(A1) | | TextSlice | 字串切片 | TextSlice(A1,-5,-2) | | TextPositionOf | 子串位置 | TextPositionOf(A1,"A",0) | | TextPositionOfAny | 任意子串位置 | TextPositionOf(A1,{"X","Y","Z"}) | | TextSplitByCharacterTransition | 位置变换时拆分字符串 | TextSplitByCharacterTransition(A1,3) | ## Number | function | what | eg | | -------- | -------------------- | ------------------------- | | MoneyDX | 金额大写转小写 | MoneyDX("壹拾贰万零捌元") | | MoneyXD | 金额小写转大写 | MoneyXD(120008) | | NumberDX | 中文数值转阿拉伯数值 | NumberDX("一千零一") | | NumberXD | 阿拉伯数值转中文数值 | NumberXD(120008) | ## Regex | function | what | eg | | -------------- | ------------------------------------------ | ------------------------------------------ | | MRegexTest | 测试正则是否部分或完整匹配给定字串 | MRegexTest(A1,"[a-z]",FALSE) | | MRegexMatch | 匹配正则的子串、支持负数倒数 | MRegexMatch(A1,"[\u4e00-\u9fa5]+",TRUE,-2) | | MRegexMatches | 匹配正则的全部子串、横向展开或拼接返回 | MRegexMatches(A1,"\d+") | | MRegexSearch | 匹配正则的子串的位置、支持负数倒数 | MRegexSearch(A1,"\d+",TRUE,2) | | MRegexSearches | 匹配正则的全部子串位置、横向展开或拼接返回 | MRegexSearches(A1,"\d+",TRUE,",") | | MRegexReplace | 替换匹配正则的子串 | MRegexReplace(A1,"[A-Z]","",TRUE) | | MRegexSplit | 根据正则拆分、横向展开 | MRegexSplit(A1,"[a-z]",TRUE,FALSE) | ## DateTime | function | what | eg | | -------------------- | ----------------- | ----------------- | | DateTimeAddYears | 时间日期加减n年 | DateTimeAddYears(A1,1) | | DateTimeAddMonths | 时间日期加减n月 | DateTimeAddMonths(A1,-1) | | DateTimeAddDays | 时间日期加减n天 | DateTimeAddDays(A1,1) | | DateTimeAddHours | 时间日期加减n小时 | DateTimeAddHours(A1,-1) | | DateTimeAddMinutes | 时间日期加减n分钟 | DateTimeAddMinutes(A1,1) | | DateTimeAddSeconds | 时间日期加减n秒 | DateTimeAddSeconds(A1,-1) | | | | | | DateTimeTotalDays | 时间段天数 | DateTimeTotalDays(A1,A2) | | DateTimeTotalHours | 时间段小时数 | DateTimeTotalHours(A1,A2) | | DateTimeTotalMinutes | 时间段分钟数 | DateTimeTotalMinutes(A1,A2) | | DateTimeTotalSeconds | 时间段秒数 | DateTimeTotalSeconds(A1,A2) | | | | | | DateTimeTheoryFinishPoint | 理论完结时间 | DateTimeTheoryFinishPoint("2023/07/01 9:10:00",21600,"9:30:00","18:00:00",{1,2,3,4,5}) | | DateTimeFactFinishDuration | 实际完结时长 | DateTimeFactFinishDuration("2023/07/01 9:10:00","2023/07/01 17:10:00","9:30:00","18:00:00",{1,2,3,4,5}) | ## Directory | function | what | eg | | --------------------------- | -------------------------- | -------------------------- | | DirectoryFolder | 获取路径下的子文件夹信息 | DirectoryFolder("C:\Users\Administrator\Pictures") | | DirectoryFile | 获取路径下的子文件信息 | DirectoryFile("C:\Users\Administrator\Pictures") | ## Array | function | what | eg | | ------------------ | ---------------------------------------- | ---------------------------------------- | | ArrayContains | 判定数组是否包含指定成员 | ArrayContains(A1:A9,"C") | | ArrayContainsAll | 判定数组是否包含所有成员 | ArrayContainsAll(A1:A9,{"B","C"}) | | ArrayContainsAny | 判定数组是否包含任意成员 | ArrayContainsAny(A1:A9,{"X","C"}) | | ArrayReverse | 翻转数组 | ArrayReverse(A1:A9) | | ArraySlice | 切片数组 | ArraySlice(A1:A9,2,-2) | | ArrayPositionOf | 成员位置 | ArrayPositionOf(A1:A9,"X",1) | | ArrayPositionOfAny | 任意成员位置 | ArrayPositionOfAny(A1:A9,{"B","C"},2) | | ArrayInsert | 数组插入成员 | ArrayInsert(A1:A9,1,"X") | | ArrayInsertRange | 数组插入数组 | ArrayInsertRange(A1:A9,-2,B1:B3) | | ArrayRemove | 数组移除指定成员 | ArrayRemove(A1:A9,"A") | | ArrayRemoveAt | 数组移除位置成员 | ArrayRemoveAt(A1:A9,-1) | | ArrayRemoveRange | 数组移除一截成员 | ArrayRemoveRange(A1:A9,1,-2) | | ArrayDuplicated | 判定成员是否重复 | ArrayDuplicated(A1:A9,1) | | ArrayFillDown | 数组向下填充 | ArrayFillDown(A1:A9) | | ArrayFillWith、废弃 | 数组条件填充 | ArrayFillWith(A1:A9,A1:A9>0,B1:B5) | | ArrayTransformMany | 数组笛卡尔 | ArrayTransformMany(A1:A3,B1:B3) | | ArraySample | 数组采样 | ArraySample(A1:A9,3,5) | | | | | | ArrayUnion | 数组并集 | ArrayUnion(A1:B3,C1:E3) | | ArrayDifference | 数组差集 | ArrayDifference(A1:B3,C1:E3) | | ArrayIntersect | 数组交集 | ArrayIntersect(A1:B3,C1:E3) | | ArraySymDifference | 数组对称差 | ArraySymDifference(A1:B3,C1:E3) | | | | | | ArrayUnpivot | 数组逆透视 | ArrayUnpivot(A1:K9,2,2) | ## WPS | function | what | eg | | --------------------------- | -------------------------- | --------------------------- | | BOOKNAME | 簿名 | BOOKNAME() | | SHEETSNAME | 表名 | SHEETSNAME(A1) | | ROUNDBANK | 四舍六入五成双 | ROUNDBANK(A1,2) | | SUBSTITUTES | 批量替换、部分模拟 | SUBSTITUTES(A1,B1:B5,C1:C5) | | REPTARRAY | 数组重复、部分模拟 | REPTARRAY(A1:C9,3,2) | | REGEXP | 正则提取判定替换、部分模拟 | REGEXP(A1,"\d+",0) | ## Other | function | what | | --------------------------- | -------------------------- | | Coffee | 咖啡 | # Command Collection ```bash 001 删空格,删除字串开头和结尾的空格 002 删空头,删除字串开头的空格 003 删空尾,删除字串结尾的空格 004 删英文,删除字串中的英文字母 005 删英小,删除字串中的小写英文字母 006 删英大,删除字串中的大写英文字母 007 删符号,删除字串中的标点符号 008 删数字,删除字串中的数字 009 删中文,删除字串中的中文 010 删不见,删除字串中看不见的字符 011 取数字,取字串中的数字 012 取数值,取字串中的数值 013 取英文,取字串中的英文 014 取中文,取字串中的中文 015 全部大写,字串中的英文变大写 016 全部小写,字串中的英文变小写 017 词首大写,字串中英文单词首变大写 018 句首大写,字串中句首英文单词变大写 019 大小翻转,字串中的英文大小写翻转 020 全角转半角,字串中全角符号转为半角符号 021 半角转全角,字串中半角符号转为全角符号 022 中符转英符,字串中中文标点符号转为英文标点符号 023 英符转中符,字串中英文标点符号转为中文标点符号 024 转为日时,将日期时间型的字串或时间戳转为真正的日期时间 025 转为日期,将日期型字串转为真正的日期 026 转为时间,将时间型字串转为真正的时间 027 转为数值,将数值型字串转为真正的数值 028 纯文本值,将任意类型转为字符串 029 姓名分开,分开姓氏和名字 030 姓氏星号,姓氏用星号代替 031 名字星号,名字用星号代替 032 中间星号,名字中间用星号代替 033 标记子串,笔记字串中的指定子串 034 正则处理,使用正则处理字符串 035 删除空列,在选区中删除空列 036 删除空行,在选区中删除空行 037 删空列整,删除整个空列 038 删空行整,删除整个空行 039 删隐藏行,删除当前工作表隐藏的行 040 删隐藏列,删除当前工作表隐藏的列 041 删隐藏行,删除当前工作簿所有工作表隐藏的行 042 删隐藏列,删除当前工作表所有工作表表隐藏的列 043 间隔插入,间隔插入行列 044 差异插入,当前行或列和前一行或列有差异时插入行或列 045 合并居中,逐列合并相同单元格并居中 046 拆分填充,拆分合并的单元格并填充 047 方向填充,向指定方向填充下一个空 048 合并求值,对合并单元格对应的数据求值 049 转工资条,快速将选区转为工资条 050 颜色排序,按选中列单元格背景颜色排序所在区域 051 拆分到行,按指定列用分割符拆分区域到行 052 高亮交集,高亮两个选区中相同的单元格 053 区域比较,两个大小一致的区域同位置比较 054 找差异行,两个同标题的区域比较找出差异行 055 找差异格,两个首行首列标题相同的区域比较找出差异单元格 056 找相同行,两个同标题的区域比较找出相同行并配相同色 057 找相同行,两个同标题的区域比较找出相同行并随机配色 058 找相同行,两个同标题的区域比较找出相同行并配相同色、区别N次相同 059 找相同行,两个同标题的区域比较找出相同行并随机配色、区别N次相同 060 参考排序,两个区域根据参考列比较相同的行排到前面 061 数值格式,修改数值或日期时间的显示格式 062 清理格式,清理所有sheet格式 063 全表适应,所有sheet自动行高列宽方便阅读 064 全表统一,所有sheet统一原始格式方便阅读 065 适应格式,内容格式适应方便阅读 066 统一格式,内容格式统一方便阅读 067 行高列宽,快捷调整行高列宽 068 差异配色,上一行和当前行有差异时配新的背景色 069 同行配色,相同的行配相同的背景色 070 连续配色,出现连续相同时配背景色 071 选中连接,选中超链接单元格 072 选中图片,选中图片对象 073 选中对象,选中图片图表形状等对象 074 选中有图,选中有图片的单元格 075 选同颜色,选中同字体颜色的单元格 076 选同背景,选中同背景色的单元格 077 选同位置,将选区应用到新表中同样的位置 078 选中唯一,区域中选中唯一值单元格 079 选中唯一首,区域中选中唯一值单元格、首次出现也算唯一 080 选中唯一末,区域中选中唯一值单元格、末次出现也算唯一 081 选中唯一行列,整行整列方式判断唯一并选中 082 选中重复,区域中选中重复值单元格 083 选中重复首,区域中选中重复值单元格、首次出现不算重复 084 选中重复末,区域中选中重复值单元格、末次出现不算重复 085 选中重复行列,整行整列方式判断重复并选中 086 选同文本,选中和当前单元格文本一致的其它单元格 087 选含文本,选中和含当前单元格文本的其它单元格 088 选中正则,使用正则选中匹配的单元格 089 选中同行,选中和当前行一致的其它行 090 选二差异,逐行扫描、当第二次差异时再选中 091 选中空值,选区中选中空单元格 092 选中空行,选区中选中空行 093 选中空列,选区中选中空列 094 间隔选行,间隔方式选取行 095 间隔选列,间隔方式选取列 096 扩选整行,当前选区扩选到所在整行 097 扩选整列,当前选区扩选到所在整列 098 方向扩选,沿指定方向扩大选区 099 方向移选,沿指定方向移动选区 100 复制簿路,复制当前工作簿完整路径到剪贴板 101 打开簿路,打开工作簿所在路径 102 簿表重组,重组工作簿工作表 103 操工作表,工作表的一些相关快捷操作 104 密隐导表,批量加密隐藏导出所选工作表 105 替换内容,批量替换所有工作簿中匹配的单元格内容、逐工作簿操作极慢慎用 106 执行自宏,执行自定义宏 107 提取连接,提取超链接中的连接 108 转为连接,将网址文件地址等转为超链接 109 区域存图,将当前选区存为图片 110 插入图片,按选区中的网络或本地路径插入图片 111 导出图片,将图片导出到同路径保存 112 图片嵌入,浮动图片改嵌入单元格 113 图片浮动,嵌入图片改浮于单元格 114 图片适应,图片大小变为和所在单元格一致 115 横向排列,图片横向固定间隔排列 116 纵向排列,图片纵向固定间隔排列 117 图片注释,将图片作为注释 118 常用公式,快速插入公式文件中自己收藏的公式 119 导入公式,将自定义名称的公式导入当前工作簿 120 清理单元格,选中单元格中的公式变为值 121 清理工作表,当前工作表中的公式变为值 122 清理工作簿,当前工作簿中的公式变为值 123 清理公式表,清空当前工作表中的错误公式 124 清理公式簿,清空当前工作簿中的错误公式 125 清理文本表,清空当前工作表中的错误公式文本 126 清理文本簿,清空当前工作簿中的错误公式文本 127 引用簿和表,查看当前引用了其它工作簿工作表 128 修正WPS公式,将当前sheet公式中的_wpsfn.清理、可能有少许差异慎用 129 导入CSV,从CSV文件导入数据 130 输出CSV,将选区输出为CSV文件 131 输出Md,将选区输出为MarkDwon文件 132 输出Json,将选区输出为Json文件 133 输出H5,将选区选出为Html5文件 134 纯Xlsx,文件另存为无公式的xlsx文件 135 S另存X,每个工作表都单独保存为独立xlsx文件 136 快速备份,快速备份当前工作簿 137 转Xlsx,批量将xls\xlam\xlsb等文档转为xlsx格式文档 138 随机信息,生成随机信息 139 随机表格,生成随机信息表格 140 随机序号,生成和选区一致的序列并随机排列 141 随机分摊,将一个数随机分摊 142 随机替换,随机替换 143 获取路径,获取路径文件等信息 144 重新命名,重新命名文件 145 簿重命名,用指定单元格内容重命名工作簿本身 146 创建路径,批量创建路径 147 纸币张数,计算数值折合的纸币张数 148 凑数求和,数组中哪些组合之和在指定范围内 149 获取背景,获取单元格的背景色 150 获取颜色,获取字体的颜色 151 批量打开,批量打开网址文件等 152 批量脚本,批量运行ps|py|bat脚本 153 powerbi,获取powerbi连接字串 154 powerbi,创建powerbi模型连接 155 powerbi,重新连接powerbi模型 156 powerbi,发起dax或mdx查询 157 省份全称,提取省份全称 158 省份简称,提取省份简称 159 城市全称,提取城市全称 160 城市简称,提取城市简称 161 城取全省,从城市获取省份全称 162 城取简省,从城市获取省份简称 163 快递全称,提取快递全称 164 快递简称,提取快递简称 165 四舍五入,将区域内数值四舍五入 166 计算导出,替换值计算导出工作簿 167 检查更新,检查更新 ``` # History ```bash 2026-04-03 update ribbon, add personal menu. 2025-07-30 update ribbon, add compare range by cell. 2025-06-12 update ribbon, add round menu. 2025-05-20 add array function, arraysample. 2025-04-20 update ribbon, add random replace menu. 2025-01-08 add number function, NumberDX,NumberXD. 2024-12-07 update ribbon, add fixwpsformula ribbon, update udf, add wps udf. 2024-12-01 update ribbon, fix image ribbon. 2024-11-29 update ribbon, add palceOverCell ribbon. 2024-11-29 update ribbon, rewrite insertImage ribbon and add palceInCell ribbon. 2024-11-04 update ribbon, add randominfotable ribbon. 2024-11-04 update ribbon, fix importcsv ribbon. 2024-10-30 update ribbon, rewrite PBI ribbon. 2024-10-25 add array function, arrayunpivot. 2024-06-17 update ribbon, add send dax|mdx query to bi. 2024-06-17 add array function, arrayfillwith. 2024-06-14 fix powerbi menu. 2024-05-22 fix regex udf function conflict with office inner functoin which will publish soon. 2024-05-19 update ribbon, add re-connect powerbi model menu. 2024-02-08 update ribbon, fix converttodatetime timestamp menu. 2024-01-24 update ribbon, fix converttodate menu. 2023-12-01 update ribbon, fix splitmergecells menu. 2023-11-26 update ribbon, add StringJoin menu. 2023-11-06 update ribbon, add batchrun menu. 2023-08-06 fix bug DateTimeFactFinishDuration functio, add find same order menu2. 2023-07-30 update ribbon, add find same order menu. 2023-07-29 update ribbon, add formula refer info. 2023-07-05 update function, add DateTimeTheoryFinishPoint/DateTimeFactFinishDuration function. 2023-06-25 fix ribbon, continuousSameBGcolor/batchConvert2xlxs. 2023-06-19 update ribbon, add continuousSameBGcolor menu. 2023-06-05 update timestamp string to datetime menu. 2023-05-01 update monthly. 2023-04-20 update ribbon, add deletehiderowcolumn menu. 2023-04-19 update ribbon, add commentpicture menu. 2023-04-18 update ribbon, add bookrecombine menu. 2023-04-17 update function, add TextSplitByCharacterTransition function. 2023-04-16 update ribbon, add bookbatchreplaceb menu. 2023-04-15 update ribbon, add ordersamerow menu. 2023-04-11 update ribbon, add renamebookbycell menu. 2023-04-11 update ribbon, update procinvecity menu. 2023-04-02 update ribbon, add sort color menu. 2023-04-02 update ribbon, fix error menu, add clear error formula text menu. 2023-04-01 update ribbon, add error menu. 2023-03-31 update maibu ribbon, add company menu. 2023-03-24 update maibu ribbon, add deliver menu, add formatclean menu. 2023-03-24 add xue ribbon add open protect menu, add maibu ribbon add province menu. 2023-03-22 update ribbon, add xue ribbon. 2023-03-04 update image ribbon, remove other package. 2023-03-01 moth update. 2023-02-23 update exportimage ribbon. 2023-02-22 update diffinset ribbon. 2023-02-20 push gitee\bilibili. 2023-02-19 new ribbon video. 2023-02-18 update ribbon, reorder menu. 2023-02-17 update ribbon, add combinesum\samebgcolor menu. 2023-02-16 update ribbon, add batchopen\regexstromg menu, add miscellaneous function. 2023-02-15 update ribbon, add number function. 2023-02-14 update ribbon, add sheet menu. 2023-02-13 update ribbon, add random\stringconvert menu. 2023-02-12 update ribbon, add directory menu, update directory function. 2023-02-11 update ribbon, add mergerangecalc\markstring menu. 2023-02-10 update ribbon, add fill\selectadd\selectmove menu. 2023-02-09 update ribbon, add char\cell\gapselect menu, update string functoin. 2023-02-08 update ribbon, add unique&duplicate menu. 2023-02-07 update ribbon, update check validate, add random menu, add salary menu. 2023-02-06 update ribbon, update export image menu, add qrcode&barcode menu 2023-02-05 update ribbon, add range to image menu, update string menu. 2023-02-04 update ribbon, update string menu. 2023-02-02 update ribbon, add link file menu, add compare same row menu. 2023-01-30 publish to gitee. 2023-01-25 update ribbon, add macro menu. 2023-01-21 update ribbon. 2023-01-20 fix arg bug. 2023-01-19 fix check bug, record string video. 2023-01-18 update array function, creat cheatsheet. 2023-01-17 update string function, arrayfunction. 2023-01-16 update ribbon. 2023-01-15 update ribbon, remove number function. 2023-01-13 add range2json ribbon. 2023-01-12 update formula ribbon, add textslice function. 2023-01-11 update image ribbon. 2023-01-10 update ribbon, add number function. 2023-01-06 update ribbon. 2023-01-02 update array function. 2022-12-26 add ribbon. 2022-12-24 update string function, add diretory and datetime function. 2022-12-07 add string function, update coffee function. 2022-12-05 add try function. 2022-12-04 add array function. 2022-11-22 update regex function. 2022-11-21 add regex function. 2022-11-20 initial project. ``` # bug ```bash # 测试颜色多于2930后排序失败 ``` # Coffee ```bash # 如果插件帮助到了您、欢迎请我喝咖啡 ```