@@ -65,7 +65,7 @@ public void splitExcel() throws Exception { //拆分Excel表格
6565 newFilePath = StringUtils .appendIfMissing (excelSplitToolController .getSaveFilePathTextField ().getText (), "/" , "/" , "\\ " ) + Paths .get (newFilePath ).getFileName ();
6666 }
6767 if (excelSplitToolController .getSplitType1RadioButton ().isSelected ()) {
68- splitNumber = lastRowIndex / ( excelSplitToolController .getSplitType1Spinner ().getValue () - 1 );
68+ splitNumber = ( int ) Math . ceil (( double ) lastRowIndex / excelSplitToolController .getSplitType1Spinner ().getValue ());
6969 saveSplitWorkbook (sheet , splitNumber , newFilePath );
7070 } else if (excelSplitToolController .getSplitType2RadioButton ().isSelected ()) {
7171 splitNumber = excelSplitToolController .getSplitType2Spinner ().getValue ();
@@ -93,7 +93,7 @@ public void splitCsv() throws Exception {
9393 int splitNumber = 0 ;
9494 if (excelSplitToolController .getSplitType1RadioButton ().isSelected ()) {
9595 List <CSVRecord > csvRecordList = parser .getRecords ();
96- splitNumber = csvRecordList .size () / ( excelSplitToolController .getSplitType1Spinner ().getValue () - 1 );
96+ splitNumber = ( int ) Math . ceil (( double ) csvRecordList .size () / excelSplitToolController .getSplitType1Spinner ().getValue ());
9797 saveSplitCsv (csvRecordList .iterator (), splitNumber , newFilePath );
9898 } else if (excelSplitToolController .getSplitType2RadioButton ().isSelected ()) {
9999 splitNumber = excelSplitToolController .getSplitType2Spinner ().getValue ();
@@ -209,17 +209,19 @@ private void saveSplitCsv(Iterator<CSVRecord> iterator, int splitNumber, String
209209 CSVRecord firstRecord = null ;
210210 while (iterator .hasNext ()) {
211211 CSVRecord record = iterator .next ();
212- if (isAddHead && addRowIndex == 0 && saveFileIndex == 0 ) {
212+ if (isAddHead && firstRecord == null ) {
213213 firstRecord = record ;
214214 }
215215 if (printer == null ) {
216216 printer = CSVFormat .DEFAULT .print (new PrintWriter (newFilePath + "-" + (saveFileIndex ++) + ".csv" ));
217- if (isAddHead && saveFileIndex != 0 ) {
218- printer .printRecord (IteratorUtils .toList (record .iterator ()).toArray ());
217+ if (isAddHead && saveFileIndex != 1 ) {
218+ printer .printRecord (IteratorUtils .toList (firstRecord .iterator ()).toArray ());
219+ addRowIndex ++;
219220 }
220221 }
221222 printer .printRecord (IteratorUtils .toList (record .iterator ()).toArray ());
222- if ((addRowIndex ++ - splitNumber ) == (isAddHead ? 1 : 0 )) {
223+ addRowIndex ++;
224+ if ((addRowIndex - splitNumber ) == (isAddHead ? 1 : 0 )) {
223225 printer .flush ();
224226 printer .close ();
225227 printer = null ;
@@ -239,6 +241,9 @@ private void saveSplitCsv(Iterator<CSVRecord> iterator, String newFilePath, Stri
239241 CSVRecord record = iterator .next ();
240242 if (firstRecord == null ) {
241243 firstRecord = record ;
244+ if (excelSplitToolController .getIncludeHandCheckBox ().isSelected ()) {
245+ continue ;
246+ }
242247 }
243248 String rowString = "" ;
244249 for (String cellIndex : splitCellIndex ) {
0 commit comments