Excel - 自定义边框
Excel 导出按钮将保存到 XLSX 文件,并且可以使用 excelHtml5
按钮类型的 customize
方法在导出文件之前自定义数据。
此示例演示了如何使用此方法操作文件,以便将样式属性添加到用于创建 XSLX 文件的 XML 中的行。传递给 customize
方法的对象包含 XSLX 的文件结构,并且可以访问工作表,如所示。然后使用 jQuery 选择器来选择第 10 行中的单元格并添加边框。可以使用更复杂的逻辑(例如根据单元格内容有条件地添加边框)。
添加的样式(在本例中为索引 25
)由 Buttons 包含的默认样式定义。有关可用样式的完整列表以及有关 customize
方法的更多信息,请参阅 excelHtml5
文档。
姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪水 |
---|---|---|---|---|---|
Tiger Nixon | 系统架构师 | 爱丁堡 | 61 | 2011-04-25 | $320,800 |
Garrett Winters | 会计 | 东京 | 63 | 2011-07-25 | $170,750 |
Ashton Cox | 初级技术作家 | 旧金山 | 66 | 2009-01-12 | $86,000 |
Cedric Kelly | 高级 Javascript 开发人员 | 爱丁堡 | 22 | 2012-03-29 | $433,060 |
Airi Satou | 会计 | 东京 | 33 | 2008-11-28 | $162,700 |
Brielle Williamson | 集成专家 | 纽约 | 61 | 2012-12-02 | $372,000 |
Herrod Chandler | 销售助理 | 旧金山 | 59 | 2012-08-06 | $137,500 |
Rhona Davidson | 集成专家 | 东京 | 55 | 2010-10-14 | $327,900 |
Colleen Hurst | Javascript 开发人员 | 旧金山 | 39 | 2009-09-15 | $205,500 |
Sonya Frost | 软件工程师 | 爱丁堡 | 23 | 2008-12-13 | $103,600 |
Jena Gaines | 办公室经理 | 伦敦 | 30 | 2008-12-19 | $90,560 |
Quinn Flynn | 支持主管 | 爱丁堡 | 22 | 2013-03-03 | $342,000 |
Charde Marshall | 区域总监 | 旧金山 | 36 | 2008-10-16 | $470,600 |
Haley Kennedy | 高级营销设计师 | 伦敦 | 43 | 2012-12-18 | $313,500 |
Tatyana Fitzpatrick | 区域总监 | 伦敦 | 19 | 2010-03-17 | $385,750 |
Michael Silva | 营销设计师 | 伦敦 | 66 | 2012-11-27 | $198,500 |
Paul Byrd | 首席财务官 (CFO) | 纽约 | 64 | 2010-06-09 | $725,000 |
Gloria Little | 系统管理员 | 纽约 | 59 | 2009-04-10 | $237,500 |
Bradley Greer | 软件工程师 | 伦敦 | 41 | 2012-10-13 | $132,000 |
Dai Rios | 人事主管 | 爱丁堡 | 35 | 2012-09-26 | $217,500 |
Jenette Caldwell | 开发主管 | 纽约 | 30 | 2011-09-03 | $345,000 |
Yuri Berry | 首席营销官 (CMO) | 纽约 | 40 | 2009-06-25 | $675,000 |
Caesar Vance | 售前支持 | 纽约 | 21 | 2011-12-12 | $106,450 |
Doris Wilder | 销售助理 | 悉尼 | 23 | 2010-09-20 | $85,600 |
Angelica Ramos | 首席执行官 (CEO) | 伦敦 | 47 | 2009-10-09 | $1,200,000 |
Gavin Joyce | 开发人员 | 爱丁堡 | 42 | 2010-12-22 | $92,575 |
Jennifer Chang | 区域总监 | 新加坡 | 28 | 2010-11-14 | $357,650 |
Brenden Wagner | 软件工程师 | 旧金山 | 28 | 2011-06-07 | $206,850 |
Fiona Green | 首席运营官 (COO) | 旧金山 | 48 | 2010-03-11 | $850,000 |
Shou Itou | 区域营销 | 东京 | 20 | 2011-08-14 | $163,000 |
Michelle House | 集成专家 | 悉尼 | 37 | 2011-06-02 | $95,400 |
Suki Burks | 开发人员 | 伦敦 | 53 | 2009-10-22 | $114,500 |
Prescott Bartlett | 技术作家 | 伦敦 | 27 | 2011-05-07 | $145,000 |
Gavin Cortez | 团队主管 | 旧金山 | 22 | 2008-10-26 | $235,500 |
Martena Mccray | 售后支持 | 爱丁堡 | 46 | 2011-03-09 | $324,050 |
Unity Butler | 营销设计师 | 旧金山 | 47 | 2009-12-09 | $85,675 |
Howard Hatfield | 办公室经理 | 旧金山 | 51 | 2008-12-16 | $164,500 |
Hope Fuentes | 秘书 | 旧金山 | 41 | 2010-02-12 | $109,850 |
Vivian Harrell | 财务总监 | 旧金山 | 62 | 2009-02-14 | $452,500 |
Timothy Mooney | 办公室经理 | 伦敦 | 37 | 2008-12-11 | $136,200 |
Jackson Bradshaw | 总监 | 纽约 | 65 | 2008-09-26 | $645,750 |
Olivia Liang | 支持工程师 | 新加坡 | 64 | 2011-02-03 | $234,500 |
Bruno Nash | 软件工程师 | 伦敦 | 38 | 2011-05-03 | $163,500 |
Sakura Yamamoto | 支持工程师 | 东京 | 37 | 2009-08-19 | $139,575 |
Thor Walton | 开发人员 | 纽约 | 61 | 2013-08-11 | $98,540 |
Finn Camacho | 支持工程师 | 旧金山 | 47 | 2009-07-07 | $87,500 |
Serge Baldwin | 数据协调员 | 新加坡 | 64 | 2012-04-09 | $138,575 |
Zenaida Frank | 软件工程师 | 纽约 | 63 | 2010-01-04 | $125,250 |
Zorita Serrano | 软件工程师 | 旧金山 | 56 | 2012-06-01 | $115,000 |
Jennifer Acosta | 初级 Javascript 开发人员 | 爱丁堡 | 43 | 2013-02-01 | $75,650 |
Cara Stevens | 销售助理 | 纽约 | 46 | 2011-12-06 | $145,600 |
Hermione Butler | 区域总监 | 伦敦 | 47 | 2011-03-21 | $356,250 |
Lael Greer | 系统管理员 | 伦敦 | 21 | 2009-02-27 | $103,500 |
Jonas Alexander | 开发人员 | 旧金山 | 30 | 2010-07-14 | $86,500 |
Shad Decker | 区域总监 | 爱丁堡 | 51 | 2008-11-13 | $183,000 |
Michael Bruce | Javascript 开发人员 | 新加坡 | 29 | 2011-06-27 | $183,000 |
Donna Snider | 客户支持 | 纽约 | 27 | 2011-01-25 | $112,000 |
姓名 | 职位 | 办公室 | 年龄 | 开始日期 | 薪水 |
- Javascript
- HTML
- CSS
- Ajax
- 服务器端脚本
- 评论
以下显示的 Javascript 用于初始化此示例中显示的表格
$('#example').DataTable({ layout: { topStart: { buttons: [ { extend: 'excelHtml5', customize: function (xlsx) { var sheet = xlsx.xl.worksheets['sheet1.xml']; // jQuery 选择器以添加边框 $('row c[r*="10"]', sheet).attr('s', '25'); } } ] } } });
new DataTable('#example', { layout: { topStart: { buttons: [ { extend: 'excelHtml5', customize: function (xlsx) { var sheet = xlsx.xl.worksheets['sheet1.xml']; // 选择器以添加边框 sheet.querySelectorAll('row c[r*="10"]').forEach((el) => { el.setAttribute('s', '25'); }); } } ] } } });
除了上面的代码之外,以下 Javascript 库文件也加载用于此示例
以下显示的 HTML 是原始 HTML 表格元素,在 DataTables 增强之前
此示例使用了一些超出库文件(以下)加载的额外 CSS,以便正确显示表格。以下显示了使用的额外 CSS
以下 CSS 库文件加载用于此示例,以提供表格的样式
此表格通过 Ajax 加载数据。以下显示了已加载的最新数据。任何其他数据加载后,此数据将自动更新。
以下显示了用于执行此表格的服务器端处理的脚本。请注意,这只是一个使用 PHP 的示例脚本。服务器端处理脚本可以用任何语言编写,使用 DataTables 文档中描述的协议。