2 n a a a a a a a a     a a   F F   a   )       . ) 1        a < ; @ 1!" C 1#$ a% C& C F' @( @) @* @ +, +-. 1/ 01 .23 .45 F67 F8 C C9 C:;<=> a a? a@ ABCD nE FG UHI UJKExcelFilenameFilter InnerClassesworkbook&Lorg/apache/poi/ss/usermodel/Workbook;csvDataLjava/util/ArrayList; Signature@Ljava/util/ArrayList;>; maxRowWidthIformattingConvention formatter+Lorg/apache/poi/ss/usermodel/DataFormatter; evaluator.Lorg/apache/poi/ss/usermodel/FormulaEvaluator; separatorLjava/lang/String;CSV_FILE_EXTENSION ConstantValueDEFAULT_SEPARATOREXCEL_STYLE_ESCAPINGUNIX_STYLE_ESCAPING()VCodeLineNumberTableLocalVariableTablethisLToCSV;convertExcelToCSV'(Ljava/lang/String;Ljava/lang/String;)V strSourcestrDestination ExceptionsLMN9(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V:(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;I)V excelFileLjava/io/File;arr$[Ljava/io/File;len$i$source destination filesListdestinationFilename StackMapTable>$ openWorkbook(Ljava/io/File;)VfilefisLjava/io/FileInputStream;OO convertToCSVjisheet#Lorg/apache/poi/ss/usermodel/Sheet;row!Lorg/apache/poi/ss/usermodel/Row; lastRowNum numSheetsPQ saveCSVFilefwLjava/io/OutputStreamWriter;bwLjava/io/BufferedWriter;linebufferLjava/lang/StringBuffer;csvLineElementLocalVariableTypeTable)Ljava/util/ArrayList;"rowToCSV$(Lorg/apache/poi/ss/usermodel/Row;)VeLjava/lang/Exception;cell"Lorg/apache/poi/ss/usermodel/Cell; lastCellNumcsvLineR3escapeEmbeddedCharacters&(Ljava/lang/String;)Ljava/lang/String;fieldmain([Ljava/lang/String;)Vexargs[Ljava/lang/String; converter SourceFile ToCSV.java qr st wx yx z{ |} ~,  java/io/File S TU"java/lang/IllegalArgumentException1The source for the Excel file(s) cannot be found.BThe folder/directory for the converted CSV file(s) does not exist. VU>The destination for the CSV file(s) is not a directory/folder.GThe value passed to the formattingConvention parameter is out of range.ToCSV$ExcelFilenameFilter W XY Z[java/lang/StringBuilder. \] ^_ `a.csv b[ c d efOpening workbook []g hSjava/io/FileInputStream i jkl mno pq)org/apache/poi/ss/usermodel/DataFormatter r sjava/util/ArrayList(Converting files contents to CSV format. tu vwP xu yu z{ Saving the CSV file [java/io/OutputStreamWriterjava/io/FileOutputStreamUTF-8 |java/io/BufferedWriter } ~ujava/lang/StringBuffer java/lang/String ` [ S  Q   R u java/lang/Exception " \"\"   ] \\\\ ToCSV  ]Usage: java ToCSV [Source File/Folder] [Destination Folder] [Separator] [Formatting Convention] Source File/Folder This argument should contain the name of and path to either a single Excel workbook or a folder containing one or more Excel workbooks. Destination Folder The name of and path to the folder that the CSV files should be written out into. The folder must exist before running the ToCSV code as it will not check for or create it. Separator Optional. The character or characters that should be used to separate fields in the CSV record. If no value is passed then the comma will be assumed. Formatting Convention Optional. This argument can take one of two values. Passing 0 (zero) will result in a CSV file that obeys Excel's formatting conventions whilst passing 1 (one) will result in a file that obeys UNIX formatting conventions. If no value is passed, then the CSV file produced will obey Excel's formatting conventions. Caught an:  Message: [Stacktrace follows:..... java/lang/Objectjava/io/FileNotFoundExceptionjava/io/IOException:org/apache/poi/openxml4j/exceptions/InvalidFormatExceptionjava/lang/Throwable!org/apache/poi/ss/usermodel/Sheetorg/apache/poi/ss/usermodel/Row org/apache/poi/ss/usermodel/Cell(Ljava/lang/String;)Vexists()Z isDirectory (LToCSV;)V listFiles)(Ljava/io/FilenameFilter;)[Ljava/io/File;getName()Ljava/lang/String; lastIndexOf(Ljava/lang/String;)I substring(II)Ljava/lang/String;append-(Ljava/lang/String;)Ljava/lang/StringBuilder;toString#(Ljava/io/File;Ljava/lang/String;)Vjava/lang/SystemoutLjava/io/PrintStream;java/io/PrintStreamprintln+org/apache/poi/ss/usermodel/WorkbookFactorycreate=(Ljava/io/InputStream;)Lorg/apache/poi/ss/usermodel/Workbook;$org/apache/poi/ss/usermodel/WorkbookgetCreationHelper.()Lorg/apache/poi/ss/usermodel/CreationHelper;*org/apache/poi/ss/usermodel/CreationHelpercreateFormulaEvaluator0()Lorg/apache/poi/ss/usermodel/FormulaEvaluator;(Z)VclosegetNumberOfSheets()I getSheetAt&(I)Lorg/apache/poi/ss/usermodel/Sheet;getPhysicalNumberOfRows getLastRowNumgetRow$(I)Lorg/apache/poi/ss/usermodel/Row;+(Ljava/io/OutputStream;Ljava/lang/String;)V(Ljava/io/Writer;)Vsizeget(I)Ljava/lang/Object;,(Ljava/lang/String;)Ljava/lang/StringBuffer;trimwritenewLineflushgetLastCellNum()SgetCell%(I)Lorg/apache/poi/ss/usermodel/Cell;add(Ljava/lang/Object;)Z getCellTypeformatCellValued(Lorg/apache/poi/ss/usermodel/Cell;Lorg/apache/poi/ss/usermodel/FormulaEvaluator;)Ljava/lang/String;6(Lorg/apache/poi/ss/usermodel/Cell;)Ljava/lang/String;contains(Ljava/lang/CharSequence;)Z replaceAll8(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;insert-(ILjava/lang/String;)Ljava/lang/StringBuffer;indexOfjava/lang/IntegerparseIntgetClass()Ljava/lang/Class;java/lang/Class getMessageprintStackTrace(Ljava/io/PrintStream;)V!an qrstuvwxyxz{|}~! xx r(********&  "' (L *+,       U *+,-  *   ~ 1 Y+ : Y, ::: Y Y Y Y*-*Y*: YS::  6 6   Q  2: * * :Y ! ":* Y#$ f !"",)4*>-F.P4[6e<j=pAxDJXZ]abhXj A ] Xx Ux ~yx 2, $ T iM%Y& + ' "()Y+*M*,+**,-*.Y/,,0N,,0-R]]^]. z|#~,4FRV]bh iig]5nLM>*1Y2%3(*466B*5L+6'+7>6+8M*,9B$.:CJS\agmHMx'Fxnljhx$Jx'%S MN:::%Y: + ' "(;Y?M@Y,AN6*BCYD:*E1:6*EB EF:*GHW*d *HW-IJK*Bd-Ln--M-N: - -M-N  z  .@IXao{\ rKxLxt   ; L%/N M>1Y2:++O>6+PM,QRWc,SLA*,*TRW/:*,VRWQRW*,VRW***RWXjmU^   !*.9X!j%m#o$}&()+2367Hoxx t  $ T  5M*d+WX%CY+WYZ[M,W\W,WHW1CY+[M,*] ,^],W\W,WHW,IJ+*X"+*Y_ * "ZL+^X +^`ZL+Bbf mn"o*p4v=wSy[zb}ju  4) @LaYbL*+*2*2c=*+*2*2*2d'*+*2*2*2*2e %f(NM%Yg ,hi "(%Yj ,k "(%l(,%mWZUB #39OWZ[z [JBJp ao