_model.js 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. var fs = require('fs');
  2. var path = require('path');
  3. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  4. //Initialize codes.
  5. AutoLoadPlugins();
  6. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  7. //You can load the plugins in global field, if the next line codes are uncommented.
  8. //AutoLoadGlobalPlugins();
  9. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  10. //Sample codes.
  11. exports.Test = function(student) {
  12. var XLSX = require('xlsx');
  13. const today = getCurrentDate();
  14. const outputPath = path.join(__dirname, "点名册.xlsx");
  15. let workbook;
  16. if (fs.existsSync(outputPath)) {
  17. workbook = XLSX.readFile(outputPath);
  18. } else {
  19. workbook = XLSX.utils.book_new();
  20. }
  21. const newWorksheet = XLSX.utils.aoa_to_sheet(student);
  22. XLSX.utils.book_append_sheet(workbook, newWorksheet, today);
  23. XLSX.writeFile(workbook, outputPath);
  24. };
  25. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  26. //Put you codes here
  27. function getCurrentDate() {
  28. const currentDate = new Date();
  29. const year = currentDate.getFullYear();
  30. const month = (currentDate.getMonth() + 1).toString().padStart(2, '0'); // 月份从0开始,所以需要加1,然后用padStart函数补0
  31. const day = currentDate.getDate().toString().padStart(2, '0'); // 获取日期并用padStart函数补0
  32. const seconds = currentDate.getSeconds();
  33. const formattedDate = `${year}${month}${day}-${seconds}`;
  34. return formattedDate;
  35. }
  36. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  37. // AutoLoadPlugins Function Implement Start.
  38. function AutoLoadPlugins() {
  39. var plugin_dir = (__dirname + '/../addon/');
  40. if (!fs.existsSync(plugin_dir)) {
  41. return;
  42. }
  43. var files = fs.readdirSync(plugin_dir);
  44. files.forEach(function(filename) {
  45. var filedir = path.join(plugin_dir, filename);
  46. var stats = fs.statSync(filedir);
  47. if (!stats.isDirectory()) {
  48. if (filedir.indexOf('-linux.node') != -1 && require('os').platform() == 'linux') {
  49. require(filedir);
  50. }
  51. if (filedir.indexOf('-win.node') != -1 && require('os').platform() == 'win32') {
  52. require(filedir);
  53. }
  54. }
  55. });
  56. }
  57. function AutoLoadGlobalPlugins() {
  58. var plugin_dir = (process.env['COMX_SDK'] + 'addon/');
  59. if (!fs.existsSync(plugin_dir)) {
  60. return;
  61. }
  62. var files = fs.readdirSync(plugin_dir);
  63. files.forEach(function(filename) {
  64. var filedir = path.join(plugin_dir, filename);
  65. var stats = fs.statSync(filedir);
  66. if (!stats.isDirectory()) {
  67. if (filedir.indexOf('-linux.node') != -1 && require('os').platform() == 'linux') {
  68. require(filedir);
  69. }
  70. if (filedir.indexOf('-win.node') != -1 && require('os').platform() == 'win32') {
  71. require(filedir);
  72. }
  73. }
  74. });
  75. }
  76. //AutoLoadPlugins Function Implement End.
  77. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  78. //////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  79. // ide_info Function Implement Start.
  80. exports.ide_info = (msg) => {
  81. if (process.send) {
  82. process.send({
  83. type: 'debug',
  84. info: msg
  85. });
  86. }
  87. }
  88. //ide_info Function Implement End.
  89. /////////////////////////////////////////////////////////////////////////////////////////////////////////////////