/// <summary> /// 导出 /// </summary> /// <param name="descCol">导出列信息描述</param> /// <param name="dataSource">导出数据源</param> /// <returns>导出结果</returns> public ResultInfo Export(DataExportDescCol descCol, DataTable dataSource) { return(this.Export(descCol, dataSource, Encoding.Default)); }
/// <summary> /// 将数据导出到Txt文件 /// </summary> /// <param name="descCol">导出列信息描述</param> /// <param name="dataSource">导出数据源</param> /// <param name="Encoding">Encoding</param> /// <returns>导出结果</returns> public ResultInfo Export(DataExportDescCol descCol, DataTable dataSource, Encoding Encoding) { using (TextWriter writer = new StreamWriter(this.m_FileName, false, Encoding)) { foreach (string s_beg in this.m_SpecialLineBegin) { if (!string.IsNullOrEmpty(s_beg)) { writer.WriteLine(s_beg); } } if (this.m_ExportTitle) { string s_title = string.Empty; foreach (DataExportDescInfo expd in descCol) { string value = expd.Fielddesc_External; if (expd.TxtFieldLength > 0 && !string.IsNullOrEmpty(this.m_paddingChar.ToString())) { value = expd.GetExportValueTxtFormat(value, this.m_paddingChar); } s_title += value; s_title += this.m_SplitStr; } writer.WriteLine(s_title); } foreach (DataRow dr in dataSource.Rows) { string s_data = string.Empty; for (int i = 0; i < descCol.Count; i++) { DataExportDescInfo expd = descCol[i]; object exportvalue; object value = string.Empty; if (!expd.IsDefaultField) { DataColumn dc = dataSource.Columns[expd.Fielddesc_Internal]; if (dc == null) { continue; } value = dr[expd.Fielddesc_Internal]; } expd.GetExportValue(value, out exportvalue); if (expd.TxtFieldLength > 0 && !string.IsNullOrEmpty(expd.TxtPaddingChar)) { exportvalue = expd.GetExportValueTxtFormat(exportvalue, expd.TxtPaddingChar.ToCharArray()[0]); } s_data += exportvalue; if (i != (descCol.Count - 1)) { s_data += this.m_SplitStr; } } writer.WriteLine(s_data); } foreach (string s_end in this.m_SpecialLineEnd) { if (!string.IsNullOrEmpty(s_end)) { writer.WriteLine(s_end); } } } return(ResultInfo.SuccessResultInfo()); }
/// <summary> /// 将数据导出到Excel文件 /// </summary> /// <param name="descCol">导出列信息描述</param> /// <param name="dataSource">导出数据源</param> /// <param name="Encoding">Encoding</param> /// <returns>导出结果</returns> public ResultInfo Export(DataExportDescCol descCol, DataTable dataSource, Encoding Encoding) { string tableName = this.m_TableName; // 'HDR=Yes;IMEX=1"; string conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + m_FileName + ";Extended Properties=\"Excel 8.0;HDR=YES\""; if (System.IO.File.Exists(this.m_FileName)) { System.IO.File.Delete(this.m_FileName); } string create = "Create Table [" + tableName + "] ("; string excelColumn = string.Empty; // string excelPara = string.Empty; foreach (DataExportDescInfo exp in descCol) { create += "["; create += exp.Fielddesc_External; create += "]"; excelColumn += "[" + exp.Fielddesc_External + "],"; // excelPara += "@" + exp.Fielddesc_External + ","; create += string.Format(" {0},", exp.ExcelValueType); } create = create.TrimEnd(','); excelColumn = excelColumn.TrimEnd(','); // excelPara = excelPara.TrimEnd(','); create += ")"; using (OleDbConnection conn = new OleDbConnection(conString)) { conn.Open(); using (OleDbTransaction trans = conn.BeginTransaction()) { try { // create table this.ExecuteNonQuery(trans, create); // string insertSql = "Insert Into [" + tableName + "] (" + excelColumn + ") Values (" + excelPara + ")"; string insertSql = "Insert Into [" + tableName + "] (" + excelColumn + ") Values ("; List <OleDbParameter> paras = new List <OleDbParameter>(); foreach (DataRow dr in dataSource.Rows) { // paras.Clear(); string valuesql = string.Empty; foreach (DataExportDescInfo expd in descCol) { object exportValue; object value = string.Empty; if (!expd.IsDefaultField) { DataColumn dc = dataSource.Columns[expd.Fielddesc_Internal]; if (dc == null) { continue; } value = dr[expd.Fielddesc_Internal]; } expd.GetExportValue(value, out exportValue); if (expd.FieldWrithType != EnumIODateType.文本 && expd.FieldWrithType != EnumIODateType.日期 && string.IsNullOrEmpty(exportValue.ToString())) { valuesql += "null,"; } else { //duxuecheng 2015年10月13日 12:29:34 添加 .Replace("'", "''") //原因:当字段中包含了单引号的时候将会报错 valuesql += "'" + exportValue.ToString().Replace("'", "''") + "',"; } // paras.Add(new OleDbParameter("@" + expd.Fielddesc_External, ex_value)); } valuesql = valuesql.TrimEnd(','); // ExecuteNonQuery(trans, insertSql, paras.ToArray()); this.ExecuteNonQuery(trans, insertSql + valuesql + ")"); } trans.Commit(); return(ResultInfo.SuccessResultInfo()); } catch (Exception ex) { string s = ex.Message; trans.Rollback(); throw; } } } }