JS操作Excel读取和写入(模板操作)
sheetjs处理excel实例 -回复

sheetjs处理excel实例-回复SheetJS是一个用于处理Excel文件的JavaScript库。
它提供了一整套处理Excel文件的功能,包括读取、写入、修改和转换等。
首先,让我们来了解一下SheetJS的基本用法。
要使用SheetJS,我们需要先引入库文件。
可以通过将以下代码添加到HTML文件的`<head>`标签中来实现:html<script src="引入库文件后,我们可以使用`XLSX`对象来访问SheetJS的各种功能。
下面是一个简单的示例,展示如何读取Excel文件并获取其中的数据:javascript读取Excel文件var fileInput = document.getElementById('excelFile');fileInput.addEventListener('change', function(e) {var file = e.target.files[0];var reader = new FileReader();reader.onload = function(e) {var data = new Uint8Array(e.target.result);解析Excel文件var workbook = XLSX.read(data, {type: 'array'});var worksheet = workbook.Sheets[workbook.SheetNames[0]];获取数据var jsonData = XLSX.utils.sheet_to_json(worksheet, {header: 1});处理数据for (var i = 1; i < jsonData.length; i++) {var row = jsonData[i];console.log('第' + i + '行:' + row);}};reader.readAsArrayBuffer(file);});以上代码的功能是在用户选择一个Excel文件后,读取并解析该文件,并将每一行的内容打印到控制台上。
node xlsx 用法 -回复

node xlsx 用法-回复Node.js是一个基于Chrome V8引擎的JavaScript运行时环境,可以将JavaScript代码在后端服务器上运行,为开发者提供了许多强大的功能和模块。
其中,xlsx是Node.js中用于处理Excel文件的模块。
在本文中,我们将一步一步介绍如何使用xlsx模块进行Excel文件的读写操作。
首先,我们需要在项目中安装xlsx模块。
在命令行中进入项目文件夹,并执行以下命令:npm install xlsx安装完成后,我们就可以开始使用xlsx模块了。
1. 读取Excel文件要读取Excel文件,我们首先需要引入xlsx模块,并使用`readFile`方法读取文件。
以下是一个简单的读取Excel文件的例子:javascriptconst xlsx = require('xlsx');const workbook = xlsx.readFile('path/to/file.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = xlsx.utils.sheet_to_json(worksheet, { header: 1 });console.log(jsonData);上述代码中,我们使用`readFile`方法读取Excel文件,并将其存储在`workbook`变量中。
然后,我们获取第一个工作表的名称,并将其存储在`sheetName`变量中。
接下来,我们使用`SheetNames`和`Sheets`属性从`workbook`中获取相应的工作表对象(在本例中只有一个工作表)。
最后,我们使用`sheet_to_json`方法将工作表转换为JSON格式,并将其存储在`jsonData`变量中。
js读取excel文件

js读取excel⽂件兼容性:主要js位置:dist⽂件夹下普通html中直接引⼊ xlsx.core.min.jswebpage中在js中引⼊,位置⾃⼰调整:import XLSX from '../xlsx.core.min';如果页⾯报错:can not resolve 'fs'xxxxx,在配置⽂件中加⼊node: {fs: 'empty'},使⽤(其中⼀种⽅式,灵活调⽤下): html代码<input type="file" id="file"><input type="button" value="demo" id="demo">function demo() {let resultFile = document.getElementById('file').files[0];if (resultFile) {let reader = new FileReader();reader.readAsBinaryString(resultFile);reader.onload = function (e) {let data = e.target.result;let workbook = XLSX.read(data, {type: 'binary'});var sheetNames = workbook.SheetNames; // ⼯作表名称集合sheetNames.forEach(name => {var worksheet = workbook.Sheets[name]; // 只能通过⼯作表名称来获取指定⼯作表for (var key in worksheet) { // .v是读取单元格的原始值,.t是单元格内容类型,.f是单元公式 !开头是有合并,c是列r是⾏(从0开始算) console.log(key, key[0] === '!' ? worksheet[key] : worksheet[key].v);}});//直接获取sheet列表//let sheets = workbook.Sheets;//通过名字获取//let sheet=sheets[name];};}}。
JS操作EXCEL大全

JS操作EXCEL大全JavaScript 是一种非常流行的编程语言,广泛用于 Web 开发。
虽然JavaScript 不是用来处理 Excel 文件的首选语言,但我们仍然可以使用一些第三方库和 JavaScript 内置的功能来操作 Excel 文件。
在接下来的文章中,我们将介绍一些常见的技术和库,以便在 JavaScript 中操作Excel 文件。
1. 使用 JavaScript 原生 API 操作 Excel 文件:JavaScript 提供了一些用于处理文件的 API,可以使用这些 API 执行一些基本的 Excel 文件操作。
例如,可以使用 FileReader API 读取Excel 文件,然后使用 JavaScript 操作数据。
这种方式主要适用于读取较小的 Excel 文件。
2.使用第三方库:2.1. ExcelJS:ExcelJS 是一个流行的 JavaScript 库,用于在浏览器和 Node.js 中操作 Excel 文件。
它提供了许多用于读取、写入和修改Excel 文件的方法。
您可以使用 ExcelJS 创建、读取和修改 Excel 文件,并进行复杂的数据操作,例如合并单元格、设置单元格样式等。
2.2. xlsx-populate:xlsx-populate 是另一个用于操作 Excel 文件的库,它提供了丰富的 API,使开发人员能够在浏览器和 Node.js 中读取和写入 Excel 文件。
它支持各种 Excel 功能,如图表、公式、数据验证等。
2.3. Excel4Node:Excel4Node 是一个用于操作 Excel 文件的轻量级库。
它使用 Apache POI 库来处理 Excel 文件,并提供了一组简单而强大的 API。
你可以使用 Excel4Node 通过浏览器或 Node.js 读取、写入和修改 Excel 文件。
3. 数据导出为 Excel 格式:你可以使用 JavaScript 将数据导出为 Excel 格式。
通过Javascript读取本地Excel文件内容的代码示例

通过Javascript读取本地Excel⽂件内容的代码⽰例读取本地Excel⽂件内容的Javascript代码:复制代码代码如下:<script type="text/javascript">function read_excel(){var filePath="D:\.xls"; //要读取的xlsvar sheet_id=2; //读取第2个表var row_start=3; //从第3⾏开始读取var tempStr='';try{var oXL = new ActiveXObject("Excel.application"); //创建Excel.Application对象}catch(err){alert(err);}var oWB = oXL.Workbooks.open(filePath);oWB.worksheets(sheet_id).select();var oSheet = oWB.ActiveSheet;var colcount=oXL.Worksheets(sheet_id).UsedRange.Cells.Rows.Count ;for(var i=row_start;i<=colcount;i++){if (typeof(oSheet.Cells(i,8).value)=='date'){ //处理第8列部分单元格内容是⽇期格式时的读取问题d= new Date(oSheet.Cells(i,8).value);temp_time=d.getFullYear()+"-"+(d.getMonth() + 1)+"-"+d.getDate();}elsetemp_time=$.trim(oSheet.Cells(i,7).value.toString());tempStr+=($.trim(oSheet.Cells(i,2).value)+" "+$.trim(oSheet.Cells(i,4).value)+""+$.trim(oSheet.Cells(i,6).value.toString())+" "+temp_time+"\n");//读取第2、4、6、8列内容}return tempStr; //返回oXL.Quit();CollectGarbage();}</script>必须条件:1、客户端必须安装Microsoft Excel activex控件(安装完整版Microsoft office即可),并在浏览器弹出“此⽹站需要运⾏以下加载项......”的提⽰时允许运⾏,否则js代码在创建Excel.Application对象时会出错。
js前端读写文件的方法(json、excel)

js前端读写⽂件的⽅法(json、excel)1、前端读取⽂件的实现关键:利⽤⽂件上传对话框预览本地⽂件、利⽤FileReader读取⽂件前端预览本地⽂件上传控件change事件利⽤FileReader读取⽂件$('#select_range').change(function(evt){var files = evt.target.files,reader = new FileReader();reader.onload = function(){var range='XXXXXXXXXX';};reader.readAsText(files[0]);});注意:FileReader需要HTML5的⽀持,另外可以通过设置或采⽤将上传空间调整为button样式2、前端保存⽂件HTML+JavaScript<a href="javascript:void(0)" id="aa">保存</a>function fake_click(obj) {var ev = document.createEvent("MouseEvents");ev.initMouseEvent("click", true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);obj.dispatchEvent(ev);}//name-⽂件名;data-要保存的字符串。
function export_raw(name, data) {var urlObject = window.URL || window.webkitURL || window;var export_blob = new Blob([data]);var save_link = document.createElementNS("/1999/xhtml", "a");save_link.href = urlObject.createObjectURL(export_blob);save_link.download = name;fake_click(save_link);}//点击按钮$('#aa').click(function() {var data=“要保存的⽂本”;export_raw('range.json', data);};。
exceljs.js的应用实例

在本文中,我将为您介绍ExcelJS.js的应用实例。
ExcelJS.js是一个强大的JavaScript库,用于创建、读取和编辑Excel文件。
它提供了丰富的功能和灵活的API,可以满足各种复杂的Excel操作需求。
通过本文,您将了解ExcelJS.js的基本用法和一些实际的应用案例,希望对您有所帮助。
1. ExcelJS.js简介ExcelJS.js是一个基于JavaScript的Excel处理库,它可以在浏览器和Node.js环境下使用。
通过ExcelJS.js,您可以轻松地创建、读取和修改Excel文件,包括表格、图表、公式、样式等内容。
它支持多种Excel格式,包括xlsx、xls、csv等,同时提供了丰富的API和文档,方便开发者进行定制化的操作。
2. ExcelJS.js的基本用法要使用ExcelJS.js,首先需要安装它的npm包,并在项目中引入相关组件。
您可以使用ExcelJS的API来创建Workbook、Worksheet、Row和Cell等对象,通过这些对象可以进行Excel文件的各种操作。
您可以添加数据到单元格、设置单元格的样式、创建图表等。
ExcelJS.js还支持读取已有的Excel文件,并对其进行修改和保存。
3. 实际应用案例下面,我将介绍一些实际的应用案例,以展示ExcelJS.js的强大功能和灵活性。
案例一:数据导出假设您正在开发一个带有报表导出功能的Web应用,用户可以在页面上选择特定的数据,并导出为Excel文件。
通过ExcelJS.js,您可以将用户选择的数据按照特定的格式导出为Excel文件,并提供下载信息。
这样,用户可以方便地将数据保存为Excel,方便后续分析和处理。
案例二:数据处理假设您需要对大量的数据进行分析和处理,在Excel中手工操作可能会非常耗时。
通过ExcelJS.js,您可以编写脚本来自动化这些操作,比如对数据进行排序、筛选、计算等。
wps js宏读、写单元格区域详解

wps js宏读、写单元格区域详解在WPS表格(Kingsoft Spreadsheets)的JS宏中,要读取和写入单元格区域,你可以使用`getRange`和`setValue`等方法。
以下是详细的说明:读取单元格区域:要读取单元格区域的值,可以使用以下步骤:1. 使用`getRange`获取单元格区域对象:```javascriptvar sheet = wps.getActiveSheet();var range = sheet.getRange("A1:B5");```这里,"A1:B5"是你想要读取的单元格区域的范围。
2. 使用`getValues`获取单元格区域的值:```javascriptvar values = range.getValues();````values`将包含指定区域内每个单元格的值。
你可以通过`values[rowIndex][columnIndex]`的方式访问特定单元格的值。
写入单元格区域:要写入单元格区域的值,可以使用以下步骤:1. 使用`getRange`获取单元格区域对象:```javascriptvar sheet = wps.getActiveSheet();var range = sheet.getRange("A1:B5");```这里,"A1:B5"是你想要写入的单元格区域的范围。
2. 使用`setValues`设置单元格区域的值:```javascriptvar newValues = [[1, 2],[3, 4],[5, 6],[7, 8],[9, 10]];range.setValues(newValues);```这将把`newValues`中的值写入指定的单元格区域。
示例:```javascript// 读取单元格区域var sheet = wps.getActiveSheet();var range = sheet.getRange("A1:B5");var values = range.getValues();for (var i = 0; i < values.length; i++) {for (var j = 0; j < values[i].length; j++) {console.log("Cell at (" + (i + 1) + "," + (j + 1) + "): " + values[i][j]);}}// 写入单元格区域var newValues = [[11, 12],[13, 14],[15, 16],[17, 18],[19, 20]];range.setValues(newValues);```这是一个简单的例子,演示了如何读取和写入单元格区域的值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JS操作Excel读取和写入(模板操作)前一段时间一直在做报表,所以肯定会用到Excel的操作,但是在网上查阅资料有关JS操作excel较少,有的话,也都是老生常谈或很零碎的一些东西。
本人是在实际项目中摸索出,JS读写Excel(模板)数据,包括怎么用JS把图片插入Excel中。
首先,添加一个公用的模板地址JS,如下:AddZDaddress.js/////////////////////////////////////////////////////////////////////////////////////////// ////////////DocName:信任站点地址添加--AddZDaddress.js////Author:lify////Company:Wavenet////Date:2009-11-04////EditDate:2010-03-11////MainContent:Findings,Ajax And So On;/////////////////////////////////////////////////////////////////////////////////////////// ///////var BelieveAddress='172.18.1.25/psc1';////配置地址配置程序时需要的配置地址////**********************************Excel 导入到WEB界面模板地址集合*******************************************////////////////////////////飞行检测excel模板地址配置/////////////////////////////////////////////////////////////var template_path_FxjcExcelDatasIntoSqlDatas ="http://%22+believeaddress+%22/NewReports/xls_template/飞行检测城镇污水厂进出水主要污染物浓度.xls";/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////************************************************************** *********************************************//////*********************************Excel 录入模板导入地址集合**********************************************////////////////////////////月报导入excel地址配置//////////////////////////////////var template_path_month ="http://%22+believeaddress+%22/NewReports/xls_template/上海市污水处理企业生产运行表.xls";///////////////////////////////////////////////////////////////////////////////////////////////////////////年报导入excel地址配置//////////////////////////////////var template_path_year ="http://%22+believeaddress+%22/NewReports/xls_template/上海市污水处理设施信息表.xls";////************************************************************** *******************************************////图片地址var pic_path="http://%22+believeaddress+%22/NewReports/";/////////////////////////////////////////////////////////////////////////////////再次,怎么样把页面数据读取到Excel中JS,如下:YearReportLuRu.jsYearReportLuRu.js/////////////////////////////////////////////////////////////////////////////////////////// ////////////DocName:污水处理设施信息表(年报)-录入报表--YearReportLuRu.js////Author:lify////Company:Wavenet////Date:2009-08-14////EditDate:2009-08-14////MainContent:Findings,Ajax And So On;/////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////添加正则表达式类/////////////////////////////////////////////////////////////document.write("<script language=\"javascript\" type=\"text/javascript\"src=\"js/RegularExpression.js\"><\/script>");/////////////////////////////////////////////////////////////////////////////////////////// /////////////////////////function AutomateExcel3(){//alert(pic_path+document.getElementById("ImgUrl").value);//测试var xls = new ActiveXObject("Excel.Application");xls.Visible = true;var newBook = xls.Workbooks.Open(template_path_year);//这里的Add方法里的参数是模板的路径var oSheet=newBook.ActiveSheet;////////////////////////////////////////////写入数据到模板中///////////////////////////////////////////////////////////////////////////法人单位名称/////////////////////////////////////////////////////////////////////////////////////////// //oSheet.Cells(2,3).value = Trim(PT.rows[0].cells[1].innerText);///////////////法人单位代码以及代表姓名/////////////////////////////////////////////////////////////////////////////////////////// //////oSheet.Cells(2,13).value = Trim(PT.rows[0].cells[5].innerText);//////////////进出口三张表///////////////////////////////////////////////////////////////////////////////////////// oSheet.Cells(3,2).value=Trim(PT.rows[1].cells[1].innerText);oSheet.Cells(3,6).value=Trim(PT.rows[1].cells[3].innerText);oSheet.Cells(3,8).value=Trim(PT.rows[1].cells[5].innerText);oSheet.Cells(3,10).value=Trim(PT.rows[1].cells[7].innerText);oSheet.Cells(3,13).value=Trim(PT.rows[1].cells[9].innerText);oSheet.Cells(4,2).value=Trim(PT.rows[2].cells[1].innerText);oSheet.Cells(4,4).value=Trim(PT.rows[2].cells[3].innerText);oSheet.Cells(4,6).value=Trim(PT.rows[2].cells[5].innerText);oSheet.Cells(4,8).value=Trim(PT.rows[2].cells[7].innerText);oSheet.Cells(4,10).value=Trim(PT.rows[2].cells[9].innerText);oSheet.Cells(4,12).value=Trim(PT.rows[2].cells[11].innerText);oSheet.Cells(4,14).value=Trim(PT.rows[2].cells[13].innerText);oSheet.Cells(5,2).value=Trim(PT.rows[3].cells[1].innerText);oSheet.Cells(5,5).value=Trim(PT.rows[3].cells[3].innerText);oSheet.Cells(5,8).value=Trim(PT.rows[3].cells[5].innerText);oSheet.Cells(5,10).value=Trim(PT.rows[3].cells[7].innerText);oSheet.Cells(5,12).value=Trim(PT.rows[3].cells[9].innerText);oSheet.Cells(5,14).value=Trim(PT.rows[3].cells[11].innerText);//////////////年运行简况///////////////////////oSheet.Cells(6,4).value = Trim(PT.rows[4].cells[3].innerText);oSheet.Cells(6,6).value = Trim(PT.rows[4].cells[5].innerText);oSheet.Cells(6,8).value = Trim(PT.rows[4].cells[7].innerText);oSheet.Cells(6,10).value = Trim(PT.rows[4].cells[9].innerText);oSheet.Cells(6,12).value = Trim(PT.rows[4].cells[11].innerText);oSheet.Cells(6,14).value = Trim(PT.rows[4].cells[13].innerText);oSheet.Cells(7,4).value = Trim(PT.rows[5].cells[2].innerText);oSheet.Cells(7,6).value = Trim(PT.rows[5].cells[4].innerText);oSheet.Cells(7,8).value = Trim(PT.rows[5].cells[6].innerText);oSheet.Cells(7,10).value = Trim(PT.rows[5].cells[8].innerText);oSheet.Cells(7,12).value = Trim(PT.rows[5].cells[10].innerText);oSheet.Cells(7,14).value = Trim(PT.rows[5].cells[12].innerText);//////////////年处理水量///////////////////////oSheet.Cells(8,2).value = Trim(PT.rows[6].cells[1].innerText);oSheet.Cells(8,5).value = Trim(PT.rows[6].cells[3].innerText);oSheet.Cells(8,8).value = Trim(PT.rows[6].cells[5].innerText);oSheet.Cells(8,11).value = Trim(PT.rows[6].cells[7].innerText);//////////////污水厂工艺概况///////////////////////oSheet.Cells(10,3).value = Trim(PT.rows[8].cells[1].innerText);oSheet.Cells(10,4).value = Trim(PT.rows[8].cells[2].innerText);oSheet.Cells(10,5).value = Trim(PT.rows[8].cells[3].innerText);oSheet.Cells(10,7).value = Trim(PT.rows[8].cells[4].innerText);oSheet.Cells(11,3).value = Trim(PT.rows[9].cells[1].innerText);oSheet.Cells(11,4).value = Trim(PT.rows[9].cells[2].innerText);oSheet.Cells(11,5).value = Trim(PT.rows[9].cells[3].innerText);oSheet.Cells(11,7).value = Trim(PT.rows[9].cells[4].innerText);oSheet.Cells(12,3).value = Trim(PT.rows[10].cells[1].innerText);oSheet.Cells(12,4).value = Trim(PT.rows[10].cells[2].innerText);oSheet.Cells(12,5).value = Trim(PT.rows[10].cells[3].innerText);oSheet.Cells(12,7).value = Trim(PT.rows[10].cells[4].innerText);//--------------------------运行费用分析-------------------------------------//oSheet.Cells(13,3).value = Trim(PT.rows[11].cells[2].innerText);oSheet.Cells(13,5).value = Trim(PT.rows[11].cells[4].innerText);oSheet.Cells(13,7).value = Trim(PT.rows[11].cells[6].innerText);oSheet.Cells(13,9).value = Trim(PT.rows[11].cells[8].innerText);////////////////////////////////厂外输送泵站示意图//////////////////////////////copy(document.getElementById("ImgUrl"));//oSheet.Pictures.Insert(pic_path+document.getElementById("ImgUrl").value) ;///////.Cells(13,11)var msoShaoeRectangle = 1;//AddShape(透明度,左,上,宽度,高度)oSheet.Shapes.AddShape(msoShaoeRectangle, 560, 330, 200,150)erPicture(pic_path+document.getElementById("ImgUrl").value);//oSheet.Cell(13,11).select();//选中excel的单元格//oSheet.Pictures.Insert(PT.rows[11].cells[8].getElementById("ImgUrl").src);//////////////////////////////////////////////////////////////////////////////oSheet.Cells(14,3).value = Trim(PT.rows[12].cells[1].innerText);oSheet.Cells(14,5).value = Trim(PT.rows[12].cells[3].innerText);oSheet.Cells(14,7).value = Trim(PT.rows[12].cells[5].innerText);oSheet.Cells(14,9).value = Trim(PT.rows[12].cells[7].innerText);oSheet.Cells(15,3).value = Trim(PT.rows[13].cells[1].innerText);oSheet.Cells(15,5).value = Trim(PT.rows[13].cells[3].innerText);oSheet.Cells(15,7).value = Trim(PT.rows[13].cells[5].innerText);oSheet.Cells(15,9).value = Trim(PT.rows[13].cells[7].innerText);oSheet.Cells(16,5).value = Trim(PT.rows[14].cells[1].innerText);oSheet.Cells(16,9).value = Trim(PT.rows[14].cells[5].innerText);oSheet.Cells(17,3).value = Trim(PT.rows[15].cells[1].innerText);oSheet.Cells(17,5).value = Trim(PT.rows[15].cells[3].innerText);oSheet.Cells(17,7).value = Trim(PT.rows[15].cells[5].innerText);//---------------------------------------------------------------------------////////////////污水厂表下方信息///////////////////////oSheet.Cells(18,2).value = Trim(RT.rows[0].cells[1].innerText);oSheet.Cells(18,7).value = Trim(RT.rows[0].cells[3].innerText);oSheet.Cells(18,11).value = Trim(RT.rows[0].cells[5].innerText);oSheet.Cells(18,14).value = Trim(RT.rows[0].cells[7].innerText);/////////////////////////////////////////////////////////////////////////////////////////// ////////////////////////xls.Visible = true;erControl = true;xls = null;idTmr = window.setInterval("Cleanup();",1);//xls.quit();}function Cleanup(){window.clearInterval(idTmr);CollectGarbage();}function copy(tabid){var oControlRange = document.body.createControlRange();oControlRange.add(tabid,0);oControlRange.select();document.execCommand("Copy");}/////////////////////////////////////////////////////////////////////////////////////////// ////////////最后,如何读取到Excel模板中数据到页面上共客户编辑数据再保存到数据库中(此步可以用xml发送至后台交互,在此不进一步说明)JS,如下:Fxjc_ExcelDatasIntoSqlDatas.js//////////////////////////////////////////////////////// ///////////////////////////////////////////////DocName:导入模板数据功能--Fxjc_ExcelDatasIntoSqlDatas.js////Author:lify////Company:Wavenet////Date:2010-03-12////EditDate:2010-03-12////MainContent:Findings,Ajax And So On;/////////////////////////////////////////////////////////////////////////////////////////// ///////var excelFileName=""; //本地EXCEL地址var oWB;var idTmr="";function AutomateExcel3(){//删除PT表的除前2行的所有行DeleteTablePT();//alert(pic_path+document.getElementById("ImgUrl").value);//测试var xls=null;var newBook;try{xls = new ActiveXObject("Excel.Application");}catch(e){openBg(0);openTS(0);alert("请您打开ActiveX控件,具体操作:单击IE中的“工具”里“Internet 选项”,单击“安全”中的“自定义级别”中“ActiveX控件和插件”中,请选择第三项为启用即可。