private void Import() { if (!File.Exists(txtFileToImport.Text)) { throw new ApplicationException("文件不存在"); } CsvContext context = GetContext() as CsvContext; context.CSVFile = txtFileToImport.Text; context.SpliterChar = GetSpliterChar(); context.IncludeHeader = chkFirstRowColumnNames.Checked; context.Data = GetData(context); }
private void Export() { using (StreamWriter sw = new StreamWriter(txtFileToImport.Text, false, System.Text.Encoding.UTF8)) using (var writer = new CsvWriter(sw)) { CsvContext context = GetContext() as CsvContext; DataTable table = context.Data; foreach (DataColumn c in table.Columns) { writer.WriteField(c.ColumnName); } writer.NextRecord(); foreach (DataRow dr in table.Rows) { foreach (DataColumn c in table.Columns) { writer.WriteField(dr[c.ColumnName]); } writer.NextRecord(); } } }
public override void Prepare() { WizardContext context = null; if (csvRadioBtn.Checked) { context = new CsvContext(); } else if (sqlserverRadioBtn.Checked) { context = new MsSqlContext(); } else if (excelRadioBtn.Checked) { context = new ExcelContext(); } context.InitailizeWizardPages(); context.Pages.Insert(0, this); GetWizard().Context = context; DTSWizardBook wizardBook = GetWizard() as DTSWizardBook; context.Data = wizardBook.Session.DataSource; }
private DataTable GetData(CsvContext context) { DataTable dt = new DataTable(); try { System.Text.Encoding encode = System.Text.Encoding.GetEncoding("UTF-8"); using (var csv = new CsvHelper.CsvReader(new StreamReader(context.CSVFile, encode))) { CsvHelper.Configuration.CsvConfiguration config = csv.Configuration; config.Encoding = encode; config.Delimiter = context.SpliterChar.ToString(); //csvhelper bug fix config.HasHeaderRecord = !context.IncludeHeader; int rowIndex = 0; int columnIndex = 0; while (csv.Read()) { dt.ExpandRow(rowIndex); for (int i = 0; i < csv.CurrentRecord.Length; i++) { dt.ExpandColumn(columnIndex); dt.Rows[rowIndex][columnIndex] = csv.GetField(i); columnIndex++; } columnIndex = 0; rowIndex++; } } } catch (Exception ex) { MessageBox.Show(ex.Message); } return(dt); }