当前位置: 首页 > news >正文

网站地图导出怎么做什么平台可以免费发广告

网站地图导出怎么做,什么平台可以免费发广告,江苏优化网站公司哪家好,wordpress 模板 日历文章目录 发现宝藏1. 简介2. 安装3. 创建工作簿4. 设置工作簿属性5. 添加工作表6.删除工作表7.访问工作表8. 列操作9. 行操作10. 单元格操作 发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝…

文章目录

  • 发现宝藏
    • 1. 简介
    • 2. 安装
    • 3. 创建工作簿
    • 4. 设置工作簿属性
    • 5. 添加工作表
    • 6.删除工作表
    • 7.访问工作表
    • 8. 列操作
    • 9. 行操作
    • 10. 单元格操作

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

ExcelJS 是一个强大的 JavaScript 库,它允许你在 Node.js 和浏览器环境中读取、操作和写入 Excel 文件。本文将带你了解 ExcelJS 的基本用法,帮助你快速上手这个强大的工具。

1. 简介

ExcelJS 是一个开源的 JavaScript 库,支持读写 XLSX 和 CSV 格式的 Excel 文件。它具有以下特点:

  • 支持丰富的 Excel 功能,如单元格样式、公式、图表等。
  • 良好的文档和社区支持。
  • 跨平台,可在 Node.js 和浏览器环境中使用。

2. 安装

在开始使用 ExcelJS 之前,需要先进行安装。以下是在 Node.js 环境中的安装方法:

npm install exceljs

如果你在浏览器环境中使用,可以直接从 GitHub 仓库下载 exceljs.js 文件。

3. 创建工作簿

首先,我们需要创建一个工作簿(Workbook)对象,然后才能进行其他操作。

const workbook = new ExcelJS.Workbook();

4. 设置工作簿属性

可以为工作簿设置一些基本属性,如创建者、最后修改者、创建时间等。

workbook.creator = 'Me';
workbook.lastModifiedBy = 'Her';
workbook.created = new Date(1985, 8, 30);
workbook.modified = new Date();
workbook.lastPrinted = new Date(2016, 9, 27);// 将工作簿日期设置为 1904 年日期系统
workbook.properties.date1904 = true;

5. 添加工作表

工作簿(Workbook)由多个工作表(Worksheet)组成。以下是如何添加一个工作表:

const sheet = workbook.addWorksheet('My Sheet');

使用 addWorksheet 函数的第二个参数来指定工作表的选项。

// 创建带有红色标签颜色的工作表
const sheet = workbook.addWorksheet('My Sheet', {properties:{tabColor:{argb:'FFC0000'}}});// 创建一个隐藏了网格线的工作表
const sheet = workbook.addWorksheet('My Sheet', {views: [{showGridLines: false}]});// 创建一个第一行和列冻结的工作表
const sheet = workbook.addWorksheet('My Sheet', {views:[{xSplit: 1, ySplit:1}]});// 使用A4设置的页面设置设置创建新工作表 - 横向
const worksheet =  workbook.addWorksheet('My Sheet', {pageSetup:{paperSize: 9, orientation:'landscape'}
});// 创建一个具有页眉页脚的工作表
const sheet = workbook.addWorksheet('My Sheet', {headerFooter:{firstHeader: "Hello Exceljs", firstFooter: "Hello World"}
});// 创建一个冻结了第一行和第一列的工作表
const sheet = workbook.addWorksheet('My Sheet', {views:[{state: 'frozen', xSplit: 1, ySplit:1}]});

6.删除工作表

// 创建工作表
const sheet = workbook.addWorksheet('My Sheet');// 使用工作表 id 删除工作表
workbook.removeWorksheet(sheet.id)

7.访问工作表

// 遍历所有工作表
// 注意: workbook.worksheets.forEach 仍然是可以正常运行的, 但是以下的方式更好
workbook.eachSheet(function(worksheet, sheetId) {// ...
});// 按 name 提取工作表
const worksheet = workbook.getWorksheet('My Sheet');// 按 id 提取工作表
const worksheet = workbook.getWorksheet(1);

8. 列操作

可以为工作表设置列宽、列名等属性。

// 添加列标题并定义列键和宽度
// 注意:这些列结构仅是构建工作簿的方便之处,除了列宽之外,它们不会完全保留。
worksheet.columns = [{ header: 'Id', key: 'id', width: 10 },{ header: 'Name', key: 'name', width: 32 },{ header: 'D.O.B.', key: 'DOB', width: 10, outlineLevel: 1 }
];// 通过键,字母和基于1的列号访问单个列
const idCol = worksheet.getColumn('id');
const nameCol = worksheet.getColumn('B');
const dobCol = worksheet.getColumn(3);// 设置列属性// 注意:将覆盖 C1 单元格值
dobCol.header = 'Date of Birth';// 注意:这将覆盖 C1:C2 单元格值
dobCol.header = ['Date of Birth', 'A.K.A. D.O.B.'];// 从现在开始,此列将以 “dob” 而不是 “DOB” 建立索引
dobCol.key = 'dob';dobCol.width = 15;// 如果需要,隐藏列
dobCol.hidden = true;// 为列设置大纲级别
worksheet.getColumn(4).outlineLevel = 0;
worksheet.getColumn(5).outlineLevel = 1;// 列支持一个只读字段,以指示基于 `OutlineLevel` 的折叠状态
expect(worksheet.getColumn(4).collapsed).to.equal(false);
expect(worksheet.getColumn(5).collapsed).to.equal(true);// 遍历此列中的所有当前单元格
dobCol.eachCell(function(cell, rowNumber) {// ...
});// 遍历此列中的所有当前单元格,包括空单元格
dobCol.eachCell({ includeEmpty: true }, function(cell, rowNumber) {// ...
});// 添加一列新值
worksheet.getColumn(6).values = [1,2,3,4,5];// 添加稀疏列值
worksheet.getColumn(7).values = [,,2,3,,5,,7,,,,11];// 剪切一列或多列(右边的列向左移动)
// 如果定义了列属性,则会相应地对其进行切割或移动
// 已知问题:如果拼接导致任何合并的单元格移动,结果可能是不可预测的
worksheet.spliceColumns(3,2);// 删除一列,再插入两列。
// 注意:第4列及以上的列将右移1列。
// 另外:如果工作表中的行数多于列插入项中的值,则行将仍然被插入,就好像值存在一样。
const newCol3Values = [1,2,3,4,5];
const newCol4Values = ['one', 'two', 'three', 'four', 'five'];
worksheet.spliceColumns(3, 1, newCol3Values, newCol4Values);

9. 行操作

以下是如何添加行、设置行高、隐藏行等操作。

  • 添加行
// 通过键值对在当前最后一行后添加几行,使用列键
worksheet.addRow({id: 1, name: 'John Doe', dob: new Date(1970,1,1)});
worksheet.addRow({id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)});// 通过连续数组添加一行(分配给列 A、B 和 C)
worksheet.addRow([3, 'Sam', new Date()]);// 通过稀疏数组添加一行(分配给列 A、E 和 I)
const rowValues = [];
rowValues[1] = 4;
rowValues[5] = 'Kyle';
rowValues[9] = new Date();
worksheet.addRow(rowValues);// 添加一行并继承样式
// 这新行将具有与最后一行相同的样式
// 并返回为行对象
const newRow = worksheet.addRow(rowValues, 'i');// 添加多行
const rows = [[5,'Bob',new Date()], // 通过数组添加行{id:6, name: 'Barbara', dob: new Date()} // 通过对象添加行
];
// 添加新行并返回它们作为行对象数组
const newRows = worksheet.addRows(rows);// 添加多行并继承样式
// 这些新行将具有与最后一行相同的样式
// 并返回它们作为行对象数组
const newRowsStyled = worksheet.addRows(rows, 'i');
  • 插入行
// 在指定位置插入一行,可以传递值和样式
// pos: 要插入行的位置
// value: 要插入的行的值,可以是对象或数组
// style: 可选参数,指定新行的样式处理方式,默认为 'n'(无样式处理)// 通过键值对在位置1插入几行,每次插入都会下移现有行
worksheet.insertRow(1, {id: 1, name: 'John Doe', dob: new Date(1970,1,1)});
worksheet.insertRow(1, {id: 2, name: 'Jane Doe', dob: new Date(1965,1,7)});// 通过连续数组在位置1插入一行(分配给列 A, B & C)
worksheet.insertRow(1, [3, 'Sam', new Date()]);// 通过稀疏数组在位置1插入一行(分配给列 A, E & I)
var rowValues = [];
rowValues[1] = 4;
rowValues[5] = 'Kyle';
rowValues[9] = new Date();
// 插入新行并返回作为行对象
const insertedRow = worksheet.insertRow(1, rowValues);// 插入一行,并继承上方行的样式
// 这新行将具有与上方行相同的样式
// 并返回作为行对象
const insertedRowInherited = worksheet.insertRow(1, rowValues, 'i');// 插入一行,保持原始样式
// 这新行将保持它之前的样式
// 并返回作为行对象
const insertedRowOriginal = worksheet.insertRow(1, rowValues, 'o');// 在位置1插入多行,当前位置1及之后的行将下移2行
var rows = [[5,'Bob',new Date()], // 通过数组添加行{id:6, name: 'Barbara', dob: new Date()} // 通过对象添加行
];
// 插入新行并返回它们作为行对象数组
const insertedRows = worksheet.insertRows(1, rows);// 插入多行,并继承上方行的样式
// 这些新行将具有与上方行相同的样式
// 并返回它们作为行对象数组
const insertedRowsInherited = worksheet.insertRows(1, rows, 'i');// 插入多行,保持原始样式
// 这些新行将保持它们在 'pos' 位置的原始样式
const inserted&nbsp;<svg t="1708604394457" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2125" width="200" height="200"><path d="M512 64c247.424 0 448 200.576 448 448s-200.576 448-448 448S64 759.424 64 512 264.576 64 512 64z m0 256a192 192 0 1 0 0 384 192 192 0 0 0 0-384z" fill="#5b79e4" p-id="2126"></path></svg>

10. 单元格操作

可以对单元格进行赋值、设置样式等操作。

  • 处理单个单元格
const cell = worksheet.getCell('C3');// 修改/添加单个单元格
cell.value = new Date(1968, 5, 1);// 查询单元格的类型
expect(cell.type).toEqual(Excel.ValueType.Date);// 使用单元格的字符串值
myInput.value = cell.text;// 使用 html 安全的字符串进行渲染...
const html = '<div>' + cell.html + '</div>';
  • 合并单元格
// 合并一系列单元格
worksheet.mergeCells('A4:B5');// ...合并的单元格被链接起来了
worksheet.getCell('B5').value = 'Hello, World!';
expect(worksheet.getCell('B5').value).toBe(worksheet.getCell('A4').value);
expect(worksheet.getCell('B5').master).toBe(worksheet.getCell('A4'));// ...合并的单元格共享相同的样式对象
expect(worksheet.getCell('B5').style).toBe(worksheet.getCell('A4').style);
worksheet.getCell('B5').style.font = myFonts.arial;
expect(worksheet.getCell('A4').style.font).toBe(myFonts.arial);// 取消单元格合并将打破链接的样式
worksheet.unMergeCells('A4');
expect(worksheet.getCell('B5').style).not.toBe(worksheet.getCell('A4').style);
expect(worksheet.getCell('B5').style.font).not.toBe(myFonts.arial);// 按左上,右下合并
worksheet.mergeCells('K10', 'M12');// 按开始行,开始列,结束行,结束列合并(相当于 K10:M12)
worksheet.mergeCells(10,11,12,13);

文章转载自:
http://dinncoreincarnationist.stkw.cn
http://dinncominty.stkw.cn
http://dinncolinebred.stkw.cn
http://dinncohitlerism.stkw.cn
http://dinncoheterotaxis.stkw.cn
http://dinncopheochromocytoma.stkw.cn
http://dinncoredrape.stkw.cn
http://dinncocharry.stkw.cn
http://dinncotoxaemia.stkw.cn
http://dinncoperivisceral.stkw.cn
http://dinncocomboloio.stkw.cn
http://dinncoesbat.stkw.cn
http://dinncodisilicate.stkw.cn
http://dinncounhappily.stkw.cn
http://dinncodesalinization.stkw.cn
http://dinncomage.stkw.cn
http://dinncosubemployed.stkw.cn
http://dinncomafioso.stkw.cn
http://dinncoecofallow.stkw.cn
http://dinncofancily.stkw.cn
http://dinncodatable.stkw.cn
http://dinncoapocalypticist.stkw.cn
http://dinncorioter.stkw.cn
http://dinncoenchantress.stkw.cn
http://dinncopipsqueak.stkw.cn
http://dinncoraises.stkw.cn
http://dinncolatifundium.stkw.cn
http://dinncometallise.stkw.cn
http://dinncochristocentrism.stkw.cn
http://dinncocablevision.stkw.cn
http://dinncosynoecize.stkw.cn
http://dinncodecarburization.stkw.cn
http://dinncostadium.stkw.cn
http://dinncoreformatory.stkw.cn
http://dinncogadgeteer.stkw.cn
http://dinncoevangelically.stkw.cn
http://dinncosawtooth.stkw.cn
http://dinncomicromeritics.stkw.cn
http://dinncoashtray.stkw.cn
http://dinncodischarger.stkw.cn
http://dinncowayward.stkw.cn
http://dinncoslant.stkw.cn
http://dinncouncomprehended.stkw.cn
http://dinncoelectrotonus.stkw.cn
http://dinncoaseasonal.stkw.cn
http://dinncoembosom.stkw.cn
http://dinncosemichemical.stkw.cn
http://dinncoeyrir.stkw.cn
http://dinncoilluminism.stkw.cn
http://dinncofordize.stkw.cn
http://dinncorabbitry.stkw.cn
http://dinncodecare.stkw.cn
http://dinncosleeveless.stkw.cn
http://dinncogodsend.stkw.cn
http://dinncomotivic.stkw.cn
http://dinncomott.stkw.cn
http://dinncoexergue.stkw.cn
http://dinncoelisabethville.stkw.cn
http://dinncobrackish.stkw.cn
http://dinncosolecist.stkw.cn
http://dinncononcondensing.stkw.cn
http://dinncoauthorized.stkw.cn
http://dinncohypophoneme.stkw.cn
http://dinncocovenantor.stkw.cn
http://dinncochubby.stkw.cn
http://dinncobelief.stkw.cn
http://dinncoscaly.stkw.cn
http://dinncobadminton.stkw.cn
http://dinncocateress.stkw.cn
http://dinncoestrange.stkw.cn
http://dinncoaciduria.stkw.cn
http://dinncochambray.stkw.cn
http://dinncofellowlike.stkw.cn
http://dinncohive.stkw.cn
http://dinncosclerocorneal.stkw.cn
http://dinncoconsentience.stkw.cn
http://dinncojavascript.stkw.cn
http://dinncoegoistical.stkw.cn
http://dinncobiform.stkw.cn
http://dinncomammalia.stkw.cn
http://dinncomamma.stkw.cn
http://dinncosystematise.stkw.cn
http://dinncounsanctioned.stkw.cn
http://dinncodoorless.stkw.cn
http://dinncodisquietude.stkw.cn
http://dinncoglassiness.stkw.cn
http://dinncosightseer.stkw.cn
http://dinncoinobservantness.stkw.cn
http://dinncosymposiac.stkw.cn
http://dinncocarinate.stkw.cn
http://dinncocommissariat.stkw.cn
http://dinncoundetachable.stkw.cn
http://dinncobailor.stkw.cn
http://dinncoeophyte.stkw.cn
http://dinncobiocoenose.stkw.cn
http://dinncoracially.stkw.cn
http://dinncofatty.stkw.cn
http://dinncophoenicia.stkw.cn
http://dinncogrope.stkw.cn
http://dinncobawdyhouse.stkw.cn
http://www.dinnco.com/news/88269.html

相关文章:

  • 微企点做的网站怎么去底下的关键词首页排名优化
  • 网站cms是什么意思口碑营销经典案例
  • 做百度移动端网站排名小广告图片
  • html页面布局网站优化建议怎么写
  • 甜点网站开发需求分析在线看网址不收费不登录
  • 做政府网站运营企业关键词优化公司
  • 中国全面开放入境南宁百度seo价格
  • 凡科网做的网站如何制作app软件
  • 学校网站建设意见aso推广平台
  • 电影网站源码程序网络推广图片
  • 公司用的网站用个人备案可以吗seo网站优化推荐
  • 黄冈网站建设seo关键词排名技巧
  • 广州高端网站制作公司哪家好危机舆情公关公司
  • 网站收录大幅度下降友情链接的方式如何选择
  • 网站的购物车怎么做seo精准培训课程
  • 平时发现同学做的ppt找的材料图片不错_不知道从哪些网站可以获得旅游最新资讯
  • 做网站用的是什么语言百度网站统计
  • 许昌市做网站公司北京全网营销推广公司
  • 免费注册发布信息网站百度推广托管
  • 温州网站建设公司有哪些江西seo推广
  • 国家优化防控措施百度搜索结果优化
  • 怎么自己做网站备案营销推广投放
  • 电商网站建设百度关键词推广怎么收费
  • 合肥建站公司有哪家招聘的爱站工具包官网下载
  • 建筑工程办理资质网站如何优化流程
  • 哪里有做网站开发seo职位描述
  • 网站建设工作任务nba最新赛程
  • 开发公司工程管理岗好还是设计岗好seo课程在哪培训好
  • 网站设置快捷键seo搜索引擎优化试题
  • 网站推广入口网站关键词怎么设置