游戏开发中最常用的工具应该当属Excel了,而Excel在数据量比较大,或者多张表进行关联的时候操作比较繁琐,偶尔会有一些工具需要,减化上述的一些操作,提升工作效率。...最开始想使用Node.js,发现二个问题,Github上第三方库,在保存 Excel 的时候会将格式给丢掉。找来找来,发现 C# 的 Epplus 比较符合需求。...进行操作 ExcelPackage 常用的API 加载或创建 Excel 文件: ExcelPackage.Load:从现有的 Excel 文件加载数据。...; return; } (2)部分Excel很大,处理起来非常耗时,有以下几个方法进行优化 用 Task 或者线程单独处理 Excel 的读、写、保存操作,处理过程中如果要操作主界面的UI(如果更新进度...worksheet.Cells[1, 2] 也可以 (4) 单元格样式的操作方法:边框、行高、合并、背景色、文字颜色、文字大小 // 检查是否存在名为 "xxxx" 的工作表 bool sheetExists
查找 FIND 函数 作用: 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。...语法: FIND(find_text, within_text, [start_num]) 示例: =FIND("ha", B2) 替换 REPLACE 函数 作用: 使用其它文本字符串并根据所指定的字符数替换某文本字符串中的部分文本...如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE;如果需要在某一文本字符串中替换指定位置的任意文本,请使用函数 REPLACE。...语法: SUBSTITUTE(text, old_text, new_text, [instance_num]) 示例: =SUBSTITUTE(B2, "helo", "hello") 去掉单元格里的空格...TRIM 函数 作用: 除了单词之间的单个空格外,清除文本中所有的空格。
查找 FIND 函数 作用: 用于在第二个文本串中定位第一个文本串,并返回第一个文本串的起始位置的值,该值从第二个文本串的第一个字符算起。...FIND(find_text, within_text, [start_num]) 示例: =FIND("ha", B2) 替换 REPLACE 函数 作用: 使用其它文本字符串并根据所指定的字符数替换某文本字符串中的部分文本...如果需要在某一文本字符串中替换指定的文本,请使用函数 SUBSTITUTE;如果需要在某一文本字符串中替换指定位置的任意文本,请使用函数 REPLACE。...SUBSTITUTE(text, old_text, new_text, [instance_num]) 示例: =SUBSTITUTE(B2, "helo", "hello") 去掉单元格里的空格...TRIM 函数 作用: 除了单词之间的单个空格外,清除文本中所有的空格。
代码,然后在html文件中通过script 标签的 src 属性引入该外部的 js 文件 5.2 BOM 对象 BOM 对象:浏览器对象模型(操作与浏览器相关的内容) ** Window 对象**...clearInterval():该方法只能清除由 setInterval 设置的定时操作 clearTimeout():该方法只能清除由 setTimeout 设置的定时操作 弹出框的几个方法: <script...(该对象开发中不怎么常用) ** Screen 对象** Screen 对象包含有关客户端显示屏幕的信息。(该对象开发中不怎么常用) 五 、使用 JS 完成注册页面表单校验 JS的事件 ?...onchange:当用户改变内容的时候使用这个事件(二级联动) 七、使用JS完成全选和选不选操作 1.需求分析 我们希望在后台系统实现一个批量删除的操作(全选所有的复选框) 2.技术分析 确定事件(鼠标单击事件...获取用户选择的省份(使用方法传参的方式:this.value) 遍历数组(获取省份与用户选择的省份比较,如果相同了,继续遍历该省份下所有的城市) 创建文本节点和元素节点并进行添加操作 createTextNode
例如,在excel中输入单位的人员信息后,如果需要在原出生年份的数字前再加两位数字,即在每个人的出生年份前再加两位数字19,如果逐个修改太麻烦,那么我们可以使用以下方法来节省时间和精力: 1)假设年份在...此时,您的所有操作都针对所有工作表,无论是设置页眉和页脚还是打印工作表。6.在Excel2000制作的工资表中,只有第一个人有工资表的表头(如编号、姓名、岗位工资.),并希望以工资单的形式输出它。...具体方法是:在编辑栏中输入一个等号后面跟着函数名,然后按下ctrl-A,Excel会自动输入“函数参数”——Excel帮助。当使用具有易于记忆的名称和长系列参数的函数时,上述方法特别有用。...弹出菜单包括一些最常用的命令,可以大大提高操作效率。首先选择一个区域,然后点击鼠标右键,弹出快捷菜单,根据操作需要选择不同的命令。 16、如何摆脱网络格线? 1)在编辑窗口中移除表格格线。...方法是: 选择操作区域,在“格式”菜单中选择“自动套用格式”命令,从格式列表框中选择满意的格式样式,然后按“确定”按钮。
最近项目中用到导出Excel,项目已有的方法1和2,导出的excel,看似是exce格式,其实只是改了后缀名。 用wps打开看着格式没问题 ? 实际另存为的时候格式显示是txt ?...于是找到了改为NPOI,导出的Excel格式正常。...1.文件流的方式 public static string DataToExcel(Page page, string s_FileName, DataTable m_DataTable) {...objStreamWriter.Close(); objFileStream.Close(); return FileName; //返回生成文件的绝对路径...} 2.Response方式导出Excel public static void ExportExcelByDataTable(Page page, string strReportName
数组方法:在Array.prototype中定义 ECMAScript3: 12个 join reverse sort concat slice splice push\pop unshift\shift...ECMAScript6: 6个 Array.from Array.of copyWithin find findIndex fill ECMAScript7: 1个 includes 字符串方法...ECMAScript5: 1个 trim ECMAScript6: 8个 includes startsWith endsWith at repeat padStart\padEnd 字符串模板 对象方法...Object.create ECMAScript6: Object.is Object.assign Object.setPrototypeOf() Object.getPrototypeOf() 迭代的方法
①replace() 方法用于在字符串中用一些字符替换另一些字符,或替换一个与正则表达式匹配的子串。...通过children获取的是该元素的下级元素,而通过find获取的是该元素的下级所有元素。 ...如果一定用children我们可以这样写: $("#tb").children("tr:last").children("td:eq(1)").html() ④jQuery 操作 CSS addClass...() - 向被选元素添加一个或多个类 removeClass() - 从被选元素删除一个或多个类 toggleClass() - 对被选元素进行添加/删除类的切换操作 $("h1,h2,...toggleClass("blue"); css() - 设置或返回样式属性 ⑤jQuery 删除 remove() - 删除被选元素(及其子元素) empty() - 从被选元素中删除子元素(不删除本身元素) ⑥js
文件操作 引用打开的工作簿 使用索引号(从 1 开始) Workbooks(1) 使用工作簿名称 Workbooks("1.xlsx") 创建一个 EXCEL 工作簿对象 Dim wd As Excel.Application...Dim wb As Workbook Set wd = CreateObject("excel.application") wd.Visible = True Set wb = wd.Workbooks.Open...directory) 判断文件夹是否存在 以下为不存在即创建 If Dir(outputDir, 16) = Empty Then MkDir (outputDir) End If 判断文件是否存在 方法...Scripting.FileSystemObject") If fileSystemObject.FileExists() = True Then MsgBox "文件存在" End If 方法...As String file = Dir("E:\MyPictures\Pic\logo.gif") If file "" Then MsgBox "文件存在" Endif 格式操作
数组的声明 var a=new Array(); var a=new Array(5); var a=new Array([5]); var a=[5]; 数组的方法 拼接 a.join(separator...个元素替换为 a.splice(index,2,item1,item2,...); //删除 从index开始删除2个元素 a.splice(index,2); 删除元素 a.pop(); pop() 方法将删除...合并两个数组 a.concat("123"); a.concat(["123"]); concat() 方法用于连接两个或多个数组。 该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本。...该参数是数组片断结束处的数组下标。如果没有指定该参数,那么切分的数组包含从 start 到数组结束的所有元素。如果这个参数是负数,那么它规定的是从数组尾部开始算起的元素。...排序 a.sort(); 倒序 a.reverse() 该方法会改变原来的数组,而不会创建新的数组。
JS 数组常用的方法(个人感觉) 1. forEach() 循环,无法在中间停止 2. some() 循环,找到符合条件的之后,可以通过 return true 退出循环 3. every() 测试数组中的所有元素是否都能通过某个指定函数的测试...amount, item) => (amount += item.price * item.count), 0); console.log(amount); //返回70 6. map() map()方法把调用它的数组的每一个元素分别传给指定的函数...,第二个参数是要删除的元素个数,之后的参数是要插入的元素,返回删除的数组 console.log(a); console.log(a.slice(3)); // 只有一个参数,则删除数组开头到起点的全部元素...; console.log(a.split(",")); 16. sort() sort()方法对数组元素按字母顺序对数组元素排序 let arr = [1, 2, 11, 23, 22, 111,...所以,要实现升序排序,可以按下面的方法 let arr = [1, 2, 11, 23, 22, 111, 12, 9, 8]; console.log( arr.sort((a, b) => {
序列化form 序列化为字符串 var result=$("#form").serialize(); 结果 name=aa&pwd=bb 序列化为数组 var...
今天给大家讲解Excel数据源的导入 ▽ excel支持的数据源类型有很多 今天只讲解常用的三种类型 Access文件、网页数据、文本数据 Access数据源导入 选择数据——自Access——进入选取数据源弹出菜单...找到目标Access文件 选择需要导入的表 ? 选择数据显示方式及存放区域 ? 确定就完成了 access导入之后的数据默认带有表格样式 ?...在弹出新建web查询中输入要导入数据的网页地址 ? 你会发现网页每一个数据表左上角 都会出现一个右向黄色箭头 单击黄色箭头然后点击右下侧确定按钮 软件就会自动导入网页数据表 ?...在文本导入向导-第1步中选择文本分列的依据 ? 在第二步中选择分列依据的分隔符号 ? 第三步选择列数据格式 ? 最后点击完成并选择数据导入位置 ?...除了以上提到的三种数据导入方法之外,excel还可以通过数据透视表、新建查询、MS query以及其他数据库格式进行导入,大家可以自行尝试!
,遇到会转换为字符串) 如果数组中存在数字10和字符串’10’,则也会认为是重复的 数组中的值如果是undefined可能也会出现问题 indexOf检测方式 let newAry = [] for (...document.getElementById getElementById方法的上下文只能是document [context].getElementsByTagName、[context].getElementsByClassName...获取的结果是HTMLCollection元素集合(类数组:数字作为索引,length代表长度) 想操作某一项需要通过索引获取后再操作 document.getElementsByName 操作表单元素...获取到的只有元素节点集合 设置DOM元素自定义属性 [元素].xxx = xxx / 元素[xxx] = xxx 获取:[元素].xxx 删除:delete [元素].xxx 原理:操作堆内存 [元素]....setAttribute(‘xxx’, xxx) 获取:[元素].getAttribute(‘xxx’) 删除:[元素].removeAttribute(‘xxx’) 原理:操作DOM结构 操作DOM
js数组常用方法还挺多的,有16个,如果面试官问你这道题可不要只回答几个哟,那是会扣分的! 1. Array.push(),向数组的末尾添加一个或多个元素,并返回新的数组长度。原数组改变。...(注意该方法和forEach的区别)。...接着面试官可能还会问你: 原数组改变的方法有:push pop shift unshift reverse sort splice 不改变原数组的方法有:concat map filter join...every some indexOf slice forEach 接着还会问 reduce这个方法你通常用于什么场景?...感兴趣的请看下一篇文章—>reduce()数组方法的使用场景 我是不爱吃糖的程序媛,关注我不迷路,向前端大佬出发!
改变原数组的方法 shift() 把数组的第一个元素从其中删除,并返回第一个元素的值, 如果数组是空的,那么 shift() 方法将不进行任何操作,返回 undefined 值。...请注意,该方法不创建新数组,而是直接修改原有的 arrayObject。 该方法会改变数组的长度。 unshift() 可向数组的开头添加一个或更多元素,并返回新的长度。...该方法的第一个参数将成为数组的新元素 0,如果还有第二个参数,它将成为新的元素 1,以此类推。请注意,unshift() 方法不创建新的创建,而是直接修改原有的数组。该方法会改变数组的长度。...它直接修改 arrayObject,而不是创建一个新的数组。push() 方法和 pop() 方法使用数组提供的先进后出栈的功能。 该方法会改变数组的长度。...splice() 方法与 slice() 方法的作用是不同的,splice() 方法会直接对数组进行修改 splice() 方法可删除从 index 处开始的零个或多个元素,并且用参数列表中声明的一个或多个值来替换那些被删除的元素
在JavaScript中,实现深拷贝(deep copy)有多种方法。以下是一些常用的方法: 1....3.使用库: lodash库的_.cloneDeep方法: import _ from 'lodash'; const newObj = _.cloneDeep(oldObj); ramda库的cloneDeep...方法: import R from 'ramda'; const newObj = R.cloneDeep(oldObj); 这些库提供了许多实用的函数,但会增加项目的依赖。...prop], hash); } }; let cloneObj = new Proxy(obj, handler); return cloneObj; } 这种方法是最强大的...每种方法都有其优点和局限性,应根据具体需求选择合适的方法。
length 设置或返回数组中元素的数目。 prototype 使您有能力向对象添加属性和方法。...4.数组对象的方法 4.1添加属性: 1.push():将数组添加到原数组末尾,并返回数组的长度。 ...var a = [1,2,3] var b = a.shift(); // b = [2,3] 4.3字数组: 1.splice():第一个参数 要操作的位置 第二个参数 从这个位置开始要操作的数量...2.sort():用于对数组中的元素进行排序。 2.1:即使数组中的每一项都是数组,sort方法比较的也是字符串。 2.2:sort()方法可以接受一个比较函数作为参数。...5.ECMAScript 5方法: 5.1位置方法: indexOf():从数组的开头(位置)开始查找; lastindeOf():从数组的结束位置开始查找; 5.2:迭代方法:
(); 加载语言 moment.locale('zh-cn'); UTC 获取UTC moment().utc(); UTC偏移量 moment().utcOffset(); 设置偏移量 以下是相同的...).set('second', 30); moment().set('millisecond', 123); moment().set({'year': 2013, 'month': 3}); 星期的取值和赋值...next Wednesday (3 + 7) moment().day(24); // 3 Wednesdays from now (3 + 7 + 7 + 7) 按区域标准 // 比如周一是一星期的第一天...moment().weekday(-7); // last Monday moment().weekday(7); // next Monday 时间操作 Key Shorthand years y
领取专属 10元无门槛券
手把手带您无忧上云