private void btn_Split_Click(object sender, EventArgs e)
        {
            if (!RequiredVerification())
            {
                return;
            }
            if (ShowMessage.ShowConfirm(ChangeLanguage.getLanguage("ConfirmExecution"), showTitle) == DialogResult.OK)
            {
                FileSplitModel fileSplitModel = new FileSplitModel();
                fileSplitModel.filePath      = txt_SelectFile.Text.Trim();
                fileSplitModel.fileOutPath   = txt_Src.Text.Trim();
                fileSplitModel.fileName      = txt_FileName.Text.Trim();
                fileSplitModel.fileExtension = fileSplitModel.filePath.Substring(fileSplitModel.filePath.LastIndexOf('.'));
                ExcelSplitModel excelModel = new ExcelSplitModel();
                if (rbtn_AllWorkBook.Checked)
                {
                    excelModel.splitType = 1;
                }
                else if (rbtn_FixedRows.Checked)
                {
                    excelModel.splitType = 2;
                    excelModel.sheetName = "";
                    excelModel.beginRow  = int.Parse(txt_FixedRowsBegin.Text.Trim());
                    excelModel.endRow    = int.Parse(txt_FixedRowsEnd.Text.Trim());
                    if (rbtn_FixedRowsDesignation.Checked)
                    {
                        ComboBoxModel model = cbBox_FixedRowsWorkSheet.SelectedItem as ComboBoxModel;
                        if (model == null)
                        {
                            ShowMessage.ShowError(ChangeLanguage.getLanguage("SpecifiedWorksheetCannotBeEmpty"), showTitle);
                            return;
                        }
                        excelModel.sheetName = model.text;
                    }
                }

                fileSplitModel.fileExcel = excelModel;

                SplitMethodInvoker splitAllMethod = new SplitMethodInvoker(SplitSheetMethod);
                this.BeginInvoke(splitAllMethod, new object[] { fileSplitModel });
            }
        }
Ejemplo n.º 2
0
        private void btnSplit_Click(object sender, EventArgs e)
        {
            if (!RequiredVerification())
            {
                return;
            }
            if (ShowMessage.ShowConfirm(ChangeLanguage.getLanguage("ConfirmExecution"), showTitle) == DialogResult.OK)
            {
                string filePath = txt_SelectFile.Text.Trim();
                if (!File.Exists(filePath))//文件不存在
                {
                    ShowMessage.ShowError(ChangeLanguage.getLanguage("FilePathError"), showTitle);
                    return;
                }

                //新建文件流
                if (fileStream != null)
                {
                    fileStream.Close();
                }
                fileStream = new FileStream(txt_SelectFile.Text, FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
                //设置当前流的位置,即开始位置
                fileStream.Seek(0, SeekOrigin.Begin);
                try
                {
                    //获取文件信息
                    double fixSize   = 0;
                    int    fileCount = 0;
                    if (rbtn_Size.Checked)//固定文件大小
                    {
                        fixSize   = double.Parse(txt_FixedSize.Text);
                        fileCount = Convert.ToInt32(txt_Total.Text);
                    }
                    else if (rbtn_Total.Checked)//固定分割份数
                    {
                        fixSize   = double.Parse(txt_Size.Text);
                        fileCount = Convert.ToInt32(txt_FixedTotal.Text);
                    }

                    for (int i = 0; i < fileCount; i++)
                    {
                        //实例化分割文件信息
                        FileSplitModel splitModel = new FileSplitModel();
                        splitModel.fileName      = txt_FileName.Text + i.ToString();
                        splitModel.fileExtension = ".txt";
                        splitModel.fileOutPath   = txt_Src.Text;
                        splitModel.fileSrc       = splitModel.fileOutPath + @"\" + splitModel.fileName + splitModel.fileExtension;
                        splitModel.fileLength    = Convert.ToInt32(fixSize).ToString();


                        splitModel.fileStreamReadOffset = 0;
                        if (i == fileCount - 1)
                        {
                            splitModel.fileIndex = -1;
                        }
                        else
                        {
                            splitModel.fileIndex = i;
                        }

                        SplitMethodInvoker splitMethod = new SplitMethodInvoker(SplitFileThread);
                        this.BeginInvoke(splitMethod, new object[] { splitModel });
                    }
                }
                catch (Exception ex)
                {
                    ShowMessage.ShowError(ex.Message, showTitle);
                }
            }
        }