-
Notifications
You must be signed in to change notification settings - Fork 0
/
index.js
96 lines (88 loc) · 19.6 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
const fs = require('fs');
let randomWords;
const XLSX = require('xlsx');
function makeId(length) {
var result = '';
var characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var charactersLength = characters.length;
for ( var i = 0; i < length; i++ ) {
result += characters.charAt(Math.floor(Math.random() * charactersLength));
}
return result;
}
function getRandomNum(length) {
return Math.floor(Math.pow(10, length-1) + Math.random() * 9 * Math.pow(10, length-1));
}
function randomDate(start, end) {
const date = new Date(start.getTime() + Math.random() * (end.getTime() - start.getTime()));
return date.toISOString().slice(0, 10);
}
function getRandomDate(){
return randomDate(new Date(2012, 0, 1), new Date());
}
function getRandomFromArray(arr){
return arr[Math.floor(Math.random()*arr.length)]
}
function getWords(data,length){
let words = "";
for(var i=0;i<length;i++){
words+= getRandomFromArray(data)
}
return words;
}
function writeExcelSheet(data,path){
const ws = XLSX.utils.json_to_sheet(data)
const wb = XLSX.utils.book_new()
XLSX.utils.book_append_sheet(wb, ws, 'Responses')
XLSX.writeFile(wb,path)
}
function capitalizeFirstLetter(strToCapitalize) {
return strToCapitalize[0].toUpperCase() + strToCapitalize.slice(1);
}
function separateCharactersUponUppercase(strInput, firstCap) {
if (firstCap) {
return capitalizeFirstLetter(strInput.split(/(?=[A-Z])/).join(" "));
}
return strInput.split(/(?=[A-Z])/).join(" ");
}
function generateExcel(excelRules,excelRows,path='output.xlsx'){
const excelDatas = [];
for(let i=0; i<excelRows; i++){
let excelData={};
for(const excelRule of excelRules){
const {heading,rule,raw} = excelRule;
const length = rule?.split?.(":")?.[1] ?? 1;
switch(true){
case raw != null:
excelData[heading] = getRandomFromArray(rule)
break;
case rule.includes("words"):
excelData[heading] = getWords(randomWords,length)
break;
case rule.includes("randomAlphaNumber"):
excelData[heading] = makeId(length)
break;
case rule.includes("randomNumber"):
excelData[heading] = getRandomNum(length)
break;
case rule.includes("randomDate"):
excelData[heading] = getRandomDate()
break;
default:
console.log("OK")
}
}
excelDatas.push(excelData);
}
path = path ?? 'output.xlsx';
writeExcelSheet(excelDatas,path);
}
try{
randomWords = fs.readFileSync('./randomWords.txt', 'utf-8');
randomWords = randomWords.split(" ");
}catch(e){
randomWords = ["Lorem","ipsum","dolor","sit","amet","consectetur","adipisicing","elit.","Ipsa","eum","vel","vitae","esse","culpa","quod","in","asperiores","magnam","sunt","provident","nesciunt","aut","nemo","similique","tenetur","blanditiis","distinctio,","libero,","repellat","deserunt!","Quia","molestias","dolorum","ab","distinctio,","soluta","molestiae","sed,","facilis","natus","accusantium","perspiciatis","est","nobis","tempore","repellendus","quod","rem","obcaecati","vitae!","Quidem","accusantium","eos","voluptatum","in","alias","minus","incidunt,","consequuntur","possimus","quam","quasi","tenetur,","quae","asperiores","consequatur","obcaecati","amet!","Nulla","delectus,","pariatur","suscipit","iure","quis","vitae","perferendis","saepe","iusto","placeat.","Ipsum","minima","ipsa","doloremque","voluptatibus","inventore","ab","cupiditate","voluptate","necessitatibus","nemo","suscipit","id,","nulla","dolorem","commodi","earum","odit","tempora","natus","omnis?","Est","consequatur","repudiandae","obcaecati","corporis","pariatur,","molestias","quae","dolorem","minus","labore","recusandae.","Officiis","obcaecati","veniam","nulla","molestias","sint","adipisci.","Ad","libero","commodi","sapiente,","recusandae,","iusto","tempora","modi","dolores","aspernatur","dolorum","nihil","natus,","nulla","illum","eum","sint","perferendis","praesentium","tempore","molestias","necessitatibus","pariatur.","Nihil","mollitia","laudantium","voluptates","corrupti","omnis","eius","dicta,","sunt","provident","odio","minima","quos","voluptate","cumque","quo","asperiores","assumenda","porro","quibusdam","eum","quisquam","temporibus","distinctio","tenetur","consequuntur.","Aperiam","velit","et,","reiciendis","ut","qui","ducimus","necessitatibus,","sapiente","fugiat","illum","placeat","alias","deleniti","quos","nobis.","Accusantium","esse","quis","quo","libero,","sed,","voluptas","inventore","rem","est","laudantium,","ullam","explicabo","facilis","unde","consequatur","amet","quaerat.","Iure","ducimus","ipsa","enim","eius","eaque","accusamus","dolorem","deserunt?","Eos","ea","perferendis","aliquam","corporis","quidem","recusandae,","quae","repellendus","illo","nemo","quis","quia","commodi","ut","non","inventore","aperiam","distinctio","eveniet","provident.","At","officia","possimus","rem","mollitia,","quis","et","eligendi","quam","modi","ratione,","corporis","facilis","quas","minus","illo","porro","quasi","fugit!","Error","nostrum","nihil","voluptatem","ipsa","impedit","corrupti","laboriosam","hic","ex","architecto.","Optio","delectus","voluptas,","itaque","corrupti","placeat","eos","debitis","ratione","est","dolorem","cum","fugit","iusto","suscipit","quam","ex","ipsa","vel","molestiae","cupiditate","quaerat","aliquid!","Voluptas","voluptates","minima","et","sequi","tempora","eveniet","eligendi","odit","temporibus","repellat","omnis","ut","modi","quasi","minus","quaerat","accusantium","sit,","dolorum","architecto!","Omnis,","illum","nesciunt!","Deserunt","error","maxime","autem","tempora","suscipit","quia","molestias","pariatur","tenetur,","adipisci","quidem","quibusdam","nulla","possimus!","Alias","voluptatum","et","earum","debitis","reiciendis","quisquam","deleniti","molestiae","nam","maiores","minus?","Ratione","autem","nisi","velit","necessitatibus","cupiditate?","Repellat","et","dolore","molestias","harum","rerum","sint","deserunt?","Nam,","sint","architecto","assumenda","nesciunt","accusantium","necessitatibus","iure","quae","a","obcaecati","animi","id","adipisci","placeat","doloribus","ipsam,","suscipit","voluptates","veniam","exercitationem","sed","impedit","ab?","Dolores","eos","aut","tempora","nemo","adipisci","et","cum","sed","fugit","quos","eligendi","dicta","temporibus","tempore,","laboriosam","iusto","facilis","amet","vel!","Odit","nesciunt","porro","numquam?","Repellat","neque","vero","assumenda","tenetur","unde","quisquam","nihil","omnis,","debitis","quidem","veritatis","hic","architecto","nisi,","saepe,","libero","asperiores","tempora","deleniti","iure","ratione.","Vero","quos","autem","suscipit","nam","earum","voluptas","explicabo","asperiores","optio","iste","atque","tempora","adipisci,","deleniti","ab","doloribus","recusandae","veniam","beatae,","ipsum,","sunt","ea","porro","eos","velit","illo","esse","nihil!","Ad","obcaecati","quam","consequatur","ex","placeat","ducimus","architecto","odio","sed","repudiandae","voluptas","maxime,","beatae","possimus","soluta.","Quaerat","sit","eos","ipsa","libero.","Atque","exercitationem","porro","vel","dolorem","nihil.","Nesciunt","odit","tempore","in","at","nobis","vero","corrupti","amet","repudiandae,","nulla","officiis","velit","ipsam","officia","molestias","illum","culpa","illo","excepturi","nemo!","Numquam","necessitatibus","temporibus","adipisci?","Voluptatum","a","pariatur","maxime","atque.","Aperiam","eaque,","enim","inventore","reprehenderit","blanditiis","ea","delectus","tempora","eos","vitae","exercitationem,","quae","quibusdam","odit","obcaecati","ratione","quasi","debitis","voluptates.","Repellendus","accusantium","quas","fugiat","et","blanditiis","facilis","rem","dolore","reiciendis","quisquam","voluptatum,","maiores","minima","libero","doloribus","illo,","id","quis","quam","fugit","perferendis","est","debitis","eos,","quia","corrupti","cupiditate","dolorum?","Accusantium","cum","libero","possimus!","Fugiat","asperiores,","reiciendis","neque","dicta","quo","quod","quasi","maiores","perspiciatis","est,","autem","quibusdam","veniam","delectus","voluptatum","minus,","exercitationem","quam","earum","harum!","Quas","fugit","at,","reiciendis,","expedita","facilis","tempora","corrupti","doloremque","doloribus","odio","in","dignissimos","molestias","alias","quasi","nulla","perferendis","quae.","Excepturi","magnam","necessitatibus","laborum","quam","placeat,","error","porro,","in","rem","velit","iste","quia,","totam","voluptatum","deleniti","doloremque","illum","consequatur!","Eius","est","magnam","repudiandae","a","asperiores","nostrum","nihil","dicta.","Nisi","aperiam","recusandae","deleniti","quaerat","in","culpa","molestias","facere","quis","molestiae","totam,","rerum","ducimus,","nobis","quo","veritatis,","exercitationem","est","excepturi.","Odio","omnis","quaerat","enim,","dignissimos","aliquid","quibusdam","accusantium","doloribus","magnam","dicta","ab","optio","perspiciatis","porro","praesentium","voluptates","itaque,","architecto","tenetur","ea","laboriosam","nemo","consequuntur?","Aliquid","minus","earum","delectus","quidem,","obcaecati","optio!","Itaque","delectus","mollitia","soluta","magni","est","voluptatibus","optio","consectetur","pariatur,","excepturi","dolore","quisquam","architecto","necessitatibus","vitae","ea","odit","ullam","laudantium","error,","reprehenderit","saepe","quo.","Est","eos","recusandae","cupiditate","facilis,","eius","cumque","impedit","ea.","Id","alias","ab","ratione","iure,","esse","voluptatum","placeat","exercitationem","enim","voluptatibus","iusto","magni,","sed","saepe","cupiditate","amet.","Assumenda","dolorum","soluta","necessitatibus","blanditiis","voluptatum","nemo","consequatur","tempore","incidunt","praesentium","rem,","dolorem","quae!","Cum,","quos","blanditiis.","Asperiores","in","ipsa","odit","recusandae","obcaecati","est","eos","odio","aspernatur,","nesciunt","reprehenderit","ab","quisquam","rem","maiores","quasi","repellendus","facilis","quia","nulla","quo","vero","doloribus","corrupti","magnam","facere","tenetur","numquam.","Dolore","incidunt","similique","suscipit","possimus","voluptatibus","beatae","dicta,","ut","iure","architecto","reiciendis","quia?","Repellendus","dignissimos","fugiat","dolores","quas!","Consectetur","quae","voluptates","obcaecati","dolores","id.","Voluptates,","voluptatibus","odit.","Rerum,","voluptatibus","sed.","Minus","ex","vel","molestias","sed","a","earum,","itaque","ea","odio","nam,","quae","fugit","alias","libero","adipisci","qui,","animi","nostrum","tempora","ducimus","magnam","corrupti","at","voluptates","atque","ullam","maxime","voluptas.","Velit","et","ad","similique","dolores","ullam","ab","possimus","cumque","nihil","culpa.","Quae,","sapiente","id?","Corrupti","eius","similique","alias","nihil","incidunt","rem","et","dolor","illum","ad","doloremque,","ipsam","dolores","libero","mollitia","non","repudiandae","maxime","cupiditate,","natus,","distinctio","quas","numquam","commodi","quis","voluptas!","Recusandae","sit","obcaecati","velit","assumenda","reprehenderit","eveniet","officia,","nesciunt","cupiditate","totam?","Temporibus","cupiditate","minima,","at","quia","sapiente","ex","nam,","voluptate","reprehenderit","error","perferendis","cumque","hic","mollitia","eius","ad","veniam","obcaecati","et","cum","rem","quas","sed.","Unde","temporibus","error","voluptates","molestias","necessitatibus","dolorem","laudantium","eligendi,","nisi","pariatur,","quisquam","facere","aperiam","similique!","Alias","fugiat","numquam","est","enim,","molestias","eaque,","non","qui","impedit","nisi","similique","at","blanditiis","vero!","Minus,","eius","modi","animi","voluptate","quaerat","necessitatibus","beatae","pariatur","molestiae","mollitia?","Reprehenderit","repellat","nemo","magni","nulla,","dignissimos","perspiciatis","minima","ad","iure","dolorum,","pariatur","consequatur","tempora","doloribus","esse","voluptatibus","eligendi","sint","alias","quidem.","Sequi,","vel","provident.","At","delectus","autem","id","expedita","minus","velit","ipsam","molestiae","ipsa","quod","ad","nulla","sed","suscipit","vitae,","neque","corrupti","alias","natus","tenetur?","Itaque","ducimus","quae","ab","eligendi","nemo","mollitia","tenetur","sit","id","repudiandae","blanditiis","est","ea","commodi","facere","neque","excepturi","harum","hic","natus","eveniet","aliquid","dicta,","numquam","rem","odit","beatae.","Minima","error","ullam","sed","accusamus","voluptate","tempora","accusantium","corrupti","consequatur","maiores","fuga","cumque,","ut","quaerat","ipsam","labore","vero","velit","expedita!","Suscipit","perspiciatis","voluptates","saepe","velit","quam","eius","aperiam?","Illum,","error","atque!","Facilis","excepturi","sunt","reprehenderit","necessitatibus","culpa","eum","nobis","commodi","et,","quidem","amet","magni","corporis","numquam","odio","quod","corrupti","modi","ab","libero","in","quos?","Cum","aut","voluptate,","mollitia","quasi","quisquam","voluptatibus","saepe","accusantium","quis","praesentium","odit","aliquid","eligendi,","numquam","officiis","laborum","ratione","itaque","temporibus","error","tempore","quas","veniam","provident","obcaecati","soluta?","Rerum","blanditiis,","ea","expedita","esse","quibusdam","saepe?","Saepe","error","quia","molestiae","vitae","atque","cupiditate","quisquam","sed,","repudiandae","laudantium","nam","modi","consequatur","unde","suscipit","fugiat","sapiente","doloremque","autem","exercitationem,","esse","consectetur.","Dolorum","magnam","accusamus","natus","repellat","mollitia","rem","nulla","delectus","odit","in","officia","assumenda,","neque","temporibus","ad","ipsum","corrupti","corporis,","unde","excepturi,","harum","cupiditate","alias!","Nemo,","doloremque","corrupti.","Maxime","dignissimos","a","quod,","id","repellendus","earum","quasi,","soluta","maiores","quae","iure","assumenda?","Voluptatibus,","perferendis","ipsum","soluta","cum","debitis","autem","eaque","sapiente","corrupti,","magnam","reprehenderit","maiores","expedita","dicta","error.","Excepturi","voluptatibus","ipsum","vero","voluptatum","iusto","eos","aperiam","nam","quo","tenetur","voluptate","totam","alias","voluptas,","nisi","ad","modi","ipsa","cum.","Provident","dicta","praesentium","explicabo","sint,","totam","aperiam","tempora","tempore","blanditiis","pariatur","beatae","fugiat","aspernatur,","ipsum","harum","obcaecati","soluta","sunt","accusantium","rerum","cupiditate?","Quis","officia","molestias","possimus","id,","exercitationem","officiis","libero","animi","harum","modi","nobis","consequatur.","Quibusdam","possimus","voluptates","vitae","voluptatem.","Cumque","consequatur","enim","pariatur","blanditiis","dolore,","corrupti","culpa","voluptate","minima","at","alias!","Est","blanditiis","sed","doloribus","tenetur","impedit","commodi","eaque","labore","fuga,","natus","nostrum","iste","magni.","Nemo","modi","accusamus","obcaecati","ut","doloribus,","repellat","optio","vitae,","excepturi","quasi","eveniet","blanditiis","libero","soluta","dolorem,","eius","beatae.","Asperiores","aliquid","voluptate","labore!","Consequatur","deleniti","iusto,","nostrum","natus","temporibus","odit","iure","labore","adipisci","quod","sequi","sit","harum","doloribus","nisi.","Voluptatum","eos","sit","quidem","expedita","voluptas","recusandae.","Ab","ratione","doloremque","assumenda,","iure,","perspiciatis","molestias","ullam","optio","quos","temporibus","provident","cum.","Molestiae,","necessitatibus!","Vero","quod","repudiandae","veniam","ex","aperiam","ad","recusandae","officiis,","consequuntur","fugiat","sed","voluptas","possimus","est","distinctio","excepturi","error","at","velit","eum","accusantium","voluptatum","dolorem","consequatur","quis","saepe","reprehenderit","dolores.","Nemo","libero","ad","ea","delectus","maiores","repudiandae","incidunt","ratione","unde","necessitatibus","minima","nihil,","in","cupiditate","atque","quidem","vitae","doloremque","corrupti","veritatis,","deleniti","aspernatur","dolorem","commodi","non","fugiat!","Officiis,","voluptas?","Fugiat","sunt","modi","voluptatibus","sed","libero","quam","aperiam","ex","aspernatur","cupiditate","magni","fugit","quaerat,","reiciendis","magnam","provident","ullam","quo","praesentium","odio","inventore","doloribus.","Adipisci,","ex?","Ducimus","eligendi","optio","labore","possimus","ullam,","quidem","quaerat","reiciendis","soluta","corrupti","ut","libero","adipisci","eius","quo","sapiente.","Tempore","adipisci","aliquam","quam,","aut","ducimus","maiores","in,","itaque","dolorem","repellat","voluptas","odit,","aspernatur","fuga","enim?","Totam","quo","ipsam","iste","eligendi","alias","eos!","Maiores","neque","tempora","sapiente","excepturi","dolores","officia","quaerat?","Dicta","aperiam","nesciunt","fugiat","tempore,","saepe","velit,","dolorum","asperiores","sapiente","voluptatibus","et","maxime!","Tempora,","ex","dolor","iure","quos","non","nisi","quae","aliquam","placeat","maxime","distinctio","vel","odio","consequatur","id","enim","in!","Odio,","sapiente?","Veritatis","cum","dicta","neque,","sapiente","laboriosam","reiciendis","repellendus","dolor","vitae","voluptate","facere","natus","recusandae","sit","voluptatem","expedita","adipisci","fugit","nobis,","quisquam","similique","quod?","Illum","esse","quidem","totam.","Eum","inventore","dolore","accusamus","similique","culpa","ea,","rem","obcaecati","provident","fuga","quaerat","rerum","eligendi","id","dolorem","placeat","nemo","exercitationem","fugit","aliquam","perferendis.","Minus","quisquam","aspernatur","voluptate","tempore","recusandae","dolore","magni","id","quia","rem","fuga","officiis","temporibus","voluptates","dolorum","animi","quidem","illo","consectetur,","porro,","perferendis","repellendus","commodi","quaerat.","Quod","saepe","fugit","deserunt","et,","explicabo","hic","quasi.","Dolorum","eum","id","laboriosam","ut","quo","consequuntur","amet,","optio","nihil","omnis","fuga","porro,","corrupti","exercitationem","facilis!","Quaerat","vitae","vel","eum","excepturi","ipsam","ex","consectetur","provident","inventore","atque","suscipit?","Quis,","repellat","fugit!","Quia","consectetur","necessitatibus","temporibus","doloremque","delectus","ea","quis","nihil","neque","voluptates","deserunt","saepe","amet","ex","mollitia,","a","repudiandae","sit","nam,","architecto","aliquam","soluta","optio","perspiciatis","quos","distinctio","dolorem.","Quia","saepe","alias","sapiente","aliquid","vel","amet","harum,","perspiciatis","at","quas","dolor","iusto,","obcaecati","incidunt","earum","totam","cupiditate","id","impedit","cum","doloribus,","rerum","nulla","quo","enim","autem","molestias.","Mollitia","tempore","beatae","accusamus","quae","delectus","recusandae","voluptatibus","velit,","nobis","iusto","possimus","voluptatem","accusantium?","Quasi","ea","earum","voluptates","id","nihil","hic","amet","nisi","quidem","quos","necessitatibus,","incidunt","rem","cum","repellat","cumque","nulla","facilis,","vitae","est!","Autem","distinctio","fuga","similique","facilis","dolorem","nemo","hic,","porro","ducimus","aliquid","non","ipsum","voluptates","a","amet","incidunt","eaque,","quae","expedita","nihil","cumque","tempore?","Quis","non","dolore","similique","magni","molestias","distinctio!","Laudantium,","nisi","temporibus","eaque","aperiam","et","ratione","quas","quo","sequi","laboriosam","autem","voluptates","quis","quod","sunt","quidem","quisquam","enim","obcaecati","harum,","officia","recusandae","aspernatur?","Vitae","aut","vel","sint","commodi,","tempore,","voluptatum,","eius","ut","aliquid","pariatur","quis","earum","culpa.","Animi","iste,","molestiae","voluptates,","consequuntur","inventore","consequatur","facere","atque","excepturi","quae","quaerat","optio","ipsam","itaque","a","eveniet","placeat","enim","exercitationem."]
}
// text , randomFromArray, randomNumber:length, randomAlphaNumber:length, randomDate
// generateExcel([{heading:"heading1", rule:"words" },{heading:"heading2",rule:"randomDate"}],10)
module.exports = generateExcel;