private void ReadCSV() { //CSVファイル選択し、選択されなければ終了。 if (this.openFileCSV.ShowDialog() != DialogResult.OK) { return; } Address_DS ads = new Address_DS(); Address_DS errords = new Address_DS(); //CSVファイルの読み込み using (TextFieldParser parser = new TextFieldParser(this.openFileCSV.FileName, System.Text.Encoding.GetEncoding("Shift-Jis"))) { //CSVの区切り文字をセット parser.SetDelimiters(","); //1行目が存在するかチェック if (parser.EndOfData == true) { //存在しない場合はメッセージボックスを表示して終了 MessageBox.Show(this, "読み込み可能な行がありません。"); return; } //1行目の読み込み ArrayList columnList = null; string[] firstRows = null; try { firstRows = parser.ReadFields(); columnList = new ArrayList(firstRows); } catch (MalformedLineException) { //読み込み不可能な行であれば、終了する。 //存在しない場合はメッセージボックスを表示して終了 MessageBox.Show(this, "1行目のフォーマットがおかしいため、処理を続行できません。" + Environment.NewLine + "Excelでファイルを正しく開けるか確認してください。"); return; } using (ColumnSelectForm f = new ColumnSelectForm(columnList)) { //行選択画面を表示し、ユーザに読み込む行を指定してもらう if (f.ShowDialog() != DialogResult.OK) { //選択されなければ、空のデータセットを返す。 return; } //1行目を読み込むならば、その行をデータセットに格納。 if (f.ReadFirstRow == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = firstRows[f.SelectColumnIndex]; ads.Address.AddAddressRow(aRow); } //ユーザが指定した列を読み込む while (parser.EndOfData == false) { try { //NULLや空文字列・すでに取り込まれた行を取り込まない。 string mailAddr = parser.ReadFields()[f.SelectColumnIndex]; if ((string.IsNullOrEmpty(mailAddr) == false) && (ads.Address.FindByMailAddress(mailAddr) == null)) { if (TKMP.Writer.MailAddressCollection.IsAddressPattern(mailAddr) == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = mailAddr; ads.Address.AddAddressRow(aRow); } else { //メールアドレス形式でないものは、エラーリストに保存 Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = mailAddr; errords.Address.AddAddressRow(aeRow); } } } catch { //行の解析に失敗したらその行をエラーリストに保存 Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = string.Format("({0}行目は読み込みエラーです)", parser.ErrorLineNumber.ToString()); errords.Address.AddAddressRow(aeRow); } } } } //CSVファイルを読み取る。 this._addressds.Merge(ads); //エラー情報をセットする。 this._errorForm.ErrorList = errords; }
/// <summary> /// �w�肳�ꂽExcel�t�@�C����ǂݍ��� /// </summary> private void ReadExcel() { //Excel�t�@�C���I����A�I�����Ȃ���ΏI���B if (this.openFileExcel.ShowDialog() != DialogResult.OK) { return; } Address_DS ads = new Address_DS(); Address_DS errords = new Address_DS(); // ExcelWorkBook�I�[�v�� ExcelWorkBook wBook = new ExcelWorkBook(); wBook.Open(this.openFileExcel.FileName); try { //�P�s�ڂ�ǂݍ��� ExcelWorkSheet sheet = wBook.WorkSheets[0]; ArrayList columnList = new ArrayList(); for (int col = sheet.FirstColumn; col <= sheet.LastColumn; col++) { if (sheet.Cells[0, col].Value == null) { continue; } columnList.Add(sheet.Cells[0, col].Value); } //�ǂݍ��ݍs���Ȃ��ꍇ�͋�̃f�[�^�Z�b�g��Ԃ��B if (columnList.Count == 0) { MessageBox.Show(this, "�ǂݍ��݉\�ȍs������܂���B"); return; } using (ColumnSelectForm f = new ColumnSelectForm(columnList)) { //�s�I���ʂ�\�����A���[�U�ɓǂݍ��ލs��w�肵�Ă�炤 if (f.ShowDialog() != DialogResult.OK) { //�I�����Ȃ���A��̃f�[�^�Z�b�g��Ԃ��B return ; } int readStartRowIndex = 0; if (f.ReadFirstRow == true) readStartRowIndex = 0; else readStartRowIndex = 1; //���[�U���w�肵�����ǂݍ��� for (int row = readStartRowIndex; row <= sheet.LastRow; row++) { //NULL�₷�łɎ�荞�܂ꂽ���[���A�h���X�͂͂����B if (!((sheet.Cells[row, f.SelectColumnIndex].Value == null) || ads.Address.FindByMailAddress(sheet.Cells[row, f.SelectColumnIndex].Value.ToString()) != null)) { string mailAddr = sheet.Cells[row, f.SelectColumnIndex].Value.ToString(); //���[���A�h���X�`���̃A�h���X�̂ݓo�^ if (TKMP.Writer.MailAddressCollection.IsAddressPattern(mailAddr) == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = mailAddr; ads.Address.AddAddressRow(aRow); } else { //���[���A�h���X�`���łȂ���̂́A�G���[���X�g�ɕۑ� Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = mailAddr; errords.Address.AddAddressRow(aeRow); } } } } } finally { // ExcelWorkBook�N���[�Y wBook.Close(); } //Excel�t�@�C����ǂݎ��B this._addressds.Merge(ads); //�G���[����Z�b�g����B this._errorForm.ErrorList = errords; }
/// <summary> /// 指定されたExcelファイルを読み込む /// </summary> private void ReadExcel() { //Excelファイル選択し、選択されなければ終了。 if (this.openFileExcel.ShowDialog() != DialogResult.OK) { return; } Address_DS ads = new Address_DS(); Address_DS errords = new Address_DS(); // ExcelWorkBookオープン ExcelWorkBook wBook = new ExcelWorkBook(); wBook.Open(this.openFileExcel.FileName); try { //1行目を読み込む ExcelWorkSheet sheet = wBook.WorkSheets[0]; ArrayList columnList = new ArrayList(); for (int col = sheet.FirstColumn; col <= sheet.LastColumn; col++) { if (sheet.Cells[0, col].Value == null) { continue; } columnList.Add(sheet.Cells[0, col].Value); } //読み込み行がない場合は空のデータセットを返す。 if (columnList.Count == 0) { MessageBox.Show(this, "読み込み可能な行がありません。"); return; } using (ColumnSelectForm f = new ColumnSelectForm(columnList)) { //行選択画面を表示し、ユーザに読み込む行を指定してもらう if (f.ShowDialog() != DialogResult.OK) { //選択されなければ、空のデータセットを返す。 return; } int readStartRowIndex = 0; if (f.ReadFirstRow == true) { readStartRowIndex = 0; } else { readStartRowIndex = 1; } //ユーザが指定した列を読み込む for (int row = readStartRowIndex; row <= sheet.LastRow; row++) { //NULLやすでに取り込まれたメールアドレスははずす。 if (!((sheet.Cells[row, f.SelectColumnIndex].Value == null) || ads.Address.FindByMailAddress(sheet.Cells[row, f.SelectColumnIndex].Value.ToString()) != null)) { string mailAddr = sheet.Cells[row, f.SelectColumnIndex].Value.ToString(); //メールアドレス形式のアドレスのみ登録 if (TKMP.Writer.MailAddressCollection.IsAddressPattern(mailAddr) == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = mailAddr; ads.Address.AddAddressRow(aRow); } else { //メールアドレス形式でないものは、エラーリストに保存 Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = mailAddr; errords.Address.AddAddressRow(aeRow); } } } } } finally { // ExcelWorkBookクローズ wBook.Close(); } //Excelファイルを読み取る。 this._addressds.Merge(ads); //エラー情報をセットする。 this._errorForm.ErrorList = errords; }
private void ReadCSV() { //CSV�t�@�C���I����A�I�����Ȃ���ΏI���B if (this.openFileCSV.ShowDialog() != DialogResult.OK) { return; } Address_DS ads = new Address_DS(); Address_DS errords = new Address_DS(); //CSV�t�@�C���̓ǂݍ��� using (TextFieldParser parser = new TextFieldParser(this.openFileCSV.FileName, System.Text.Encoding.GetEncoding("Shift-Jis"))) { //CSV�̋�蕶����Z�b�g parser.SetDelimiters(","); //�P�s�ڂ����݂��邩�`�F�b�N if (parser.EndOfData == true) { //���݂��Ȃ��ꍇ�̓��b�Z�[�W�{�b�N�X��\�����ďI�� MessageBox.Show(this, "�ǂݍ��݉\�ȍs������܂���B"); return ; } //�P�s�ڂ̓ǂݍ��� ArrayList columnList = null; string[] firstRows = null; try { firstRows = parser.ReadFields(); columnList = new ArrayList(firstRows); } catch (MalformedLineException) { //�ǂݍ��ݕs�\�ȍs�ł���A�I������B //���݂��Ȃ��ꍇ�̓��b�Z�[�W�{�b�N�X��\�����ďI�� MessageBox.Show(this, "�P�s�ڂ̃t�H�[�}�b�g�������������߁A�����s�ł��܂���B" + Environment.NewLine + "Excel�Ńt�@�C���𐳂����J���邩�m�F���Ă��������B"); return; } using (ColumnSelectForm f = new ColumnSelectForm(columnList)) { //�s�I���ʂ�\�����A���[�U�ɓǂݍ��ލs��w�肵�Ă�炤 if (f.ShowDialog() != DialogResult.OK) { //�I�����Ȃ���A��̃f�[�^�Z�b�g��Ԃ��B return; } //�P�s�ڂ�ǂݍ��ނȂ�A���̍s��f�[�^�Z�b�g�Ɋi�[�B if (f.ReadFirstRow == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = firstRows[f.SelectColumnIndex]; ads.Address.AddAddressRow(aRow); } //���[�U���w�肵�����ǂݍ��� while (parser.EndOfData == false) { try { //NULL�����E���łɎ�荞�܂ꂽ�s���荞�܂Ȃ��B string mailAddr = parser.ReadFields()[f.SelectColumnIndex]; if ((string.IsNullOrEmpty(mailAddr) == false) && (ads.Address.FindByMailAddress(mailAddr) == null)) { if (TKMP.Writer.MailAddressCollection.IsAddressPattern(mailAddr) == true) { Address_DS.AddressRow aRow = ads.Address.NewAddressRow(); aRow.MailAddress = mailAddr; ads.Address.AddAddressRow(aRow); } else { //���[���A�h���X�`���łȂ���̂́A�G���[���X�g�ɕۑ� Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = mailAddr; errords.Address.AddAddressRow(aeRow); } } } catch { //�s�̉�͂Ɏ��s�����炻�̍s��G���[���X�g�ɕۑ� Address_DS.AddressRow aeRow = errords.Address.NewAddressRow(); aeRow.MailAddress = string.Format("�i{0}�s�ڂ͓ǂݍ��݃G���[�ł��j", parser.ErrorLineNumber.ToString()); errords.Address.AddAddressRow(aeRow); } } } } //CSV�t�@�C����ǂݎ��B this._addressds.Merge(ads); //�G���[����Z�b�g����B this._errorForm.ErrorList = errords; }