Advertisement
Guest User

Untitled

a guest
Jun 27th, 2016
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.29 KB | None | 0 0
  1. var xlsx = require('node-xlsx');
  2. var fs = require('fs');
  3. var optimist = require('optimist').argv;
  4. var src = optimist.src;
  5. var target = optimist.target;
  6. var json = fs.readFileSync(src).toString();
  7.  
  8. String.prototype.decodeHTML = function() {
  9. var map = {
  10. "gt": ">",
  11. "nbsp": " ",
  12. "amp": "&"
  13. /* , … */
  14. };
  15. return this.replace(/&(#(?:x[0-9a-f]+|\d+)|[a-z]+);?/gi, function($0, $1) {
  16. if ($1[0] === "#") {
  17. return String.fromCharCode($1[1].toLowerCase() === "x" ? parseInt($1.substr(2), 16) : parseInt($1.substr(1), 10));
  18. } else {
  19. return map.hasOwnProperty($1) ? map[$1] : $0;
  20. }
  21. });
  22. };
  23.  
  24. var _GroupMember_Callback = function(data) {
  25. data = data.data.item;
  26. var ret = [];
  27. data.forEach(function(item, index) {
  28. var nick = item.nick.decodeHTML();
  29. nick = nick.replace(/[^a-zA-Z0-9_\-\u4e00-\u9fa5]/g,'');
  30. ret.push([nick, item.uin + '@qq.com']);
  31. });
  32. var worksheets = [];
  33. worksheets.push({
  34. "name": "sheets",
  35. "data": ret
  36. });
  37. var buffer = xlsx.build({
  38. worksheets: worksheets
  39. }); // returns a buffer
  40. fs.open(target, 'w', function(err, fd) {
  41. if (err) throw err;
  42. else {
  43. fs.write(fd, buffer, 0, buffer.length, null, function() {
  44. if (err) throw err;
  45. else {
  46. fs.close(fd, function() {
  47. console.log(target+ ' written');
  48. });
  49. }
  50. });
  51. }
  52. });
  53. };
  54.  
  55. eval(json);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement