Advertisement
Guest User

Untitled

a guest
Mar 27th, 2017
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.63 KB | None | 0 0
  1. use warnings 'all';
  2. use strict;
  3.  
  4. use LWP::Simple 'get';
  5. use Spreadsheet::WriteExcel;
  6. use HTML::TreeBuilder;
  7. use Path::Tiny;
  8. use constant URL => 'http://pastebin.com/raw/qLwu80ZW';
  9.  
  10. my $teamNumber = "";my $teamName="";my $schoolName="";my $area="";my $district=""; my $agDeptPhone=""; my $schoolPhone=""; my $fax=""; my $addressOne=""; my $addressTwo=""; my $city="";
  11. my $state=""; my $zipCode=""; my $name=""; my $email=""; my $row=""; my $Ypos=0;
  12.  
  13. my $workbook = Spreadsheet::WriteExcel->new('perlOutput.xlsx');
  14. my $worksheet = $workbook->add_worksheet();
  15.  
  16. sub getTeamNumber {
  17. my ($file) = @_;
  18. my $html = path($file)-> slurp;
  19. my $tree = HTML::TreeBuilder->new_from_content($html);
  20. my @nodes = $tree->look_down(_tag => 'input');
  21. my $val;
  22. foreach my $node (@nodes) {
  23. $val = $node->look_down('name', qr/\$txt_TeamNumber/)->attr('value');
  24. }
  25. return $val;
  26. }
  27. sub getTeamName {
  28. my ($file) = @_;
  29. my $html = path($file)->slurp;
  30. my $tree = HTML::TreeBuilder->new_from_content($html);
  31. my @nodes = $tree->look_down(_tag => 'input');
  32. my $val;
  33. foreach my $node (@nodes) {
  34. $val = $node->look_down('name', qr/\$txt_TeamName/)->attr('value');
  35. }
  36. return $val;
  37. }
  38. sub getSchoolName {
  39. my ($file) = @_;
  40. my $html = path($file)->slurp;
  41. my $tree = HTML::TreeBuilder->new_from_content($html);
  42. my @nodes = $tree->look_down(tag_ => 'input');
  43. my $val;
  44. foreach my $node (@nodes) {
  45. $val = $node->look_down('name', qr/\$txt_SchoolName/)->attr('value');
  46. }
  47. return $val;
  48. }
  49. sub getArea{
  50. my ($file) = @_;
  51. my $html = path($file)->slurp;
  52. my $tree = HTML::TreeBuilder->new_from_content($html);
  53. my @nodes = $tree->look_down(tag_ => 'input');
  54. my $val;
  55. foreach my $node (@nodes) {
  56. $val = $node->look_down('name', qr/\$txt_Area/)->attr('value');
  57. }
  58. return $val;
  59. }
  60. sub getDistrict{
  61. my ($file) = @_;
  62. my $html = path($file)->slurp;
  63. my $tree = HTML::TreeBuilder->new_from_content($html);
  64. my @nodes = $tree->look_down(_tag => 'input');
  65. my $val;
  66. foreach my $node (@nodes) {
  67. $val = $node->look_down('name', qr/\$txt_District/)->attr('value');
  68. }
  69. return $val;
  70. }
  71. sub getDeptPhone{
  72. my ($file) = @_;
  73. my $html = path($file)->slurp;
  74. my $tree = HTML::TreeBuilder->new_from_content($html);
  75. my @nodes = $tree->look_down(_tag => 'input');
  76. my $val;
  77. foreach my $node (@nodes) {
  78. $val = $node->look_down('name', qr/\$txt_Phone/)->attr('value');
  79. }
  80. return $val;
  81. }
  82. sub getSchoolPhone{
  83. my ($file) = @_;
  84. my $html = path($file)->slurp;
  85. my $tree = HTML::TreeBuilder->new_from_content($html);
  86. my @nodes = $tree->look_down(_tag => 'input');
  87. my $val;
  88. foreach my $node (@nodes) {
  89. $val = $node->look_down('name', qr/\$txt_Phone2/)->attr('value');
  90. }
  91. return $val;
  92. }
  93. sub getFax{
  94. my ($file) = @_;
  95. my $html = path($file)->slurp;
  96. my $tree = HTML::TreeBuilder->new_from_content($html);
  97. my @nodes = $tree->look_down(_tag => 'input');
  98. my $val;
  99. foreach my $node (@nodes) {
  100. $val = $node->look_down('name', qr/\$txt_Fax/)->attr('value');
  101. }
  102. $val =~ s/\-//g;
  103. return $val;
  104. }
  105. sub getAddress1 {
  106. my ($file) = @_;
  107. my $html = path($file)-> slurp;
  108. my $tree = HTML::TreeBuilder->new_from_content($html);
  109. my @nodes = $tree->look_down(_tag => 'input');
  110. my $val;
  111. foreach my $node (@nodes) {
  112. $val = $node->look_down('name', qr/\$txt_Address1/)->attr('value');
  113. }
  114. return $val;
  115. }
  116. sub getAddress2 {
  117. my ($file) = @_;
  118. my $html = path($file)-> slurp;
  119. my $tree = HTML::TreeBuilder->new_from_content($html);
  120. my @nodes = $tree->look_down(_tag => 'input');
  121. my $val;
  122. foreach my $node (@nodes) {
  123. $val = $node->look_down('name', qr/\$txt_Address2/)->attr('value');
  124. }
  125. return $val;
  126. }
  127. sub getCity {
  128. my ($file) = @_;
  129. my $html = path($file)-> slurp;
  130. my $tree = HTML::TreeBuilder->new_from_content($html);
  131. my @nodes = $tree->look_down(_tag => 'input');
  132. my $val;
  133. foreach my $node (@nodes) {
  134. $val = $node->look_down('name', qr/\$txt_City/)->attr('value');
  135. }
  136. return $val;
  137. }
  138. sub getState {
  139. my ($file) = @_;
  140. my $html = path($file)-> slurp;
  141. my $tree = HTML::TreeBuilder->new_from_content($html);
  142. my @nodes = $tree->look_down(_tag => 'input');
  143. my $val;
  144. foreach my $node (@nodes) {
  145. $val = $node->look_down('name', qr/\$txt_State/)->attr('value');
  146. }
  147. return $val;
  148. }
  149. sub getZip {
  150. my ($file) = @_;
  151. my $html = path($file)-> slurp;
  152. my $tree = HTML::TreeBuilder->new_from_content($html);
  153. my @nodes = $tree->look_down(_tag => 'input');
  154. my $val;
  155. foreach my $node (@nodes) {
  156. $val = $node->look_down('name', qr/\$txt_Zip/)->attr('value');
  157. }
  158. return $val;
  159. }
  160. sub getWebsite {
  161. my ($file) = @_;
  162. my $html = path($file)-> slurp;
  163. my $tree = HTML::TreeBuilder->new_from_content($html);
  164. my @nodes = $tree->look_down(_tag => 'input');
  165. my $val;
  166. foreach my $node (@nodes) {
  167. $val = $node->look_down('name', qr/\$txt_Website/)->attr('value');
  168. }
  169. return $val;
  170. }
  171. sub getNameAndEmail {
  172. my ($file) = @_;
  173. my $tree = HTML::TreeBuilder->new_from_content(get URL);
  174. my ($table) = $tree->look_down(_tag => 'table', class => 'rgMasterTable');
  175.  
  176. for my $tr ( $table->look_down(_tag => 'tr') ) {
  177. next unless my @td = $tr->look_down(_tag => 'td');
  178. my ($name, $email) = map { $_->as_trimmed_text } @td[0,1];
  179. }
  180. return ($name, $email);
  181. }
  182.  
  183. #FILLER: This fills the spreadsheet with all the variables we've acquired
  184. sub fill {
  185. my ($name, $email, $teamNumber, $teamName, $schoolName, $area, $district,
  186. $agDeptPhone, $schoolPhone, $fax, $addressOne, $addressTwo, $city, $state, $zipCode) = (@_);
  187. $worksheet->write($Ypos, 1, $name);
  188. $worksheet->write($Ypos, 2, $email);
  189. $worksheet->write($Ypos, 3, $teamNumber);
  190. $worksheet->write($Ypos, 4, $teamName);
  191. $worksheet->write($Ypos, 5, $schoolName);
  192. $worksheet->write($Ypos, 6, $area);
  193. $worksheet->write($Ypos, 7, $district);
  194. $worksheet->write($Ypos, 8, $agDeptPhone);
  195. $worksheet->write($Ypos, 9, $schoolPhone);
  196. $worksheet->write($Ypos, 10, $fax);
  197. $worksheet->write($Ypos, 11, $addressOne);
  198. $worksheet->write($Ypos, 12, $addressTwo);
  199. $worksheet->write($Ypos, 13, $city);
  200. $worksheet->write($Ypos, 14, $state);
  201. $worksheet->write($Ypos, 15, $zipCode);
  202. }
  203.  
  204. #Open judgingcard directory
  205. opendir(DH, "\/Judging Card\/");
  206. my @files = readdir(DH);
  207.  
  208. #This fills out all top row info
  209. $worksheet->write("A1","Name");
  210. $worksheet->write("A2","Email");
  211. $worksheet->write("A3","Team Number");
  212. $worksheet->write("A4","Team Name");
  213. $worksheet->write("A5","School Name");
  214. $worksheet->write("A6","Area");
  215. $worksheet->write("A7","District");
  216. $worksheet->write("A8","Ag Dept Phone");
  217. $worksheet->write("A9","School Phone");
  218. $worksheet->write("A10","Fax");
  219. $worksheet->write("A11","Address One");
  220. $worksheet->write("A12","Address Two");
  221. $worksheet->write("A13","City");
  222. $worksheet->write("A14","State");
  223. $worksheet->write("A15","Zip Code");
  224. ###################################
  225.  
  226.  
  227. foreach my $file (@files) { #run through all files in directory
  228. next if (-d $file); #Skip file if file is folder
  229.  
  230. $Ypos = $Ypos + 1;
  231.  
  232. my ($name1, $email1) = getNameAndEmail($file);
  233.  
  234. $name = $name1;
  235. $email = $email1;
  236. $teamNumber = getTeamNumber($file);
  237. $teamName = getTeamName($file);
  238. $schoolName = getSchoolName($file);
  239. $area = getArea($file);
  240. $district = getDistrict($file);
  241. $agDeptPhone = getDeptPhone($file);
  242. $schoolPhone = getSchoolPhone($file);
  243. $fax = getFax($file);
  244. $addressOne = getAddress1($file);
  245. $addressTwo = getAddress2($file);
  246. $city = getCity($file);
  247. $state = getState($file);
  248. $zipCode = getZip($file);
  249.  
  250.  
  251. fill($name, $email, $teamNumber, $teamName, $schoolName, $area, $district, $agDeptPhone, $schoolPhone, $fax, $addressOne,
  252. $addressTwo, $city, $state, $zipCode);
  253.  
  254. }
  255. closedir(DH);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement