111,093
社区成员




public DataTable TransferDs(string excelFile, string sheetName, string connectionString, string sqlExl)
{
string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source=" + excelFile + ";" + "Extended Properties=Excel 8.0;";
OleDbConnection conn = new OleDbConnection(strConn);
DataSet ds = new DataSet();
try
{
//获取全部数据
conn.Open();
string strExcel = "";
OleDbDataAdapter myCommand = null;
strExcel = string.Format(sqlExl, sheetName);
myCommand = new OleDbDataAdapter(strExcel, strConn);
myCommand.Fill(ds, sheetName);
}
catch (Exception e)
{
throw e;
}
finally
{
conn.Close();
}
return ds.Tables[0];
}
//两个结构不同的DT合并
/// <summary>
/// 将两个列不同的DataTable合并成一个新的DataTable
/// </summary>
/// <param name="dt1">表1</param>
/// <param name="dt2">表2</param>
/// <param name="DTName">合并后新的表名</param>
/// <returns></returns>
private DataTable UniteDataTable( DataTable dt1 ,DataTable dt2 ,string DTName)
{
DataTable dt3 = dt1.Clone();
for( int i = 0 ;i < dt2.Columns.Count ;i ++ )
{
dt3.Columns.Add( dt2.Columns[i].ColumnName ) ;
}
object[] obj = new object[dt3.Columns.Count];
for (int i = 0; i < dt1.Rows.Count; i++)
{
dt1.Rows[i].ItemArray.CopyTo(obj,0);
dt3.Rows.Add(obj);
}
if( dt1.Rows.Count >= dt2.Rows.Count )
{
for( int i = 0 ;i < dt2.Rows.Count ;i++ )
{
for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
{
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
}
}
}
else
{
DataRow dr3 ;
for( int i = 0 ;i < dt2.Rows.Count - dt1.Rows.Count ;i ++ )
{
dr3 = dt3.NewRow() ;
dt3.Rows.Add( dr3 ) ;
}
for( int i = 0 ;i < dt2.Rows.Count ;i++ )
{
for( int j = 0 ;j < dt2.Columns.Count ;j ++ )
{
dt3.Rows[i][j+dt1.Columns.Count] = dt2.Rows[i][j].ToString() ;
}
}
}
dt3.TableName = DTName ; //设置DT的名字
return dt3 ;
}
private void btnExport_Click(object sender, RoutedEventArgs e)
{
List<Information> infoList = new List<Information>();
infoList = tbInfo.GetInformationList(); //获取数据源
System.Data.DataTable table;
table = new System.Data.DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("NickName", typeof(string));
table.Columns.Add("QNumber", typeof(string));
DataRow row = table.NewRow();
row["ID"] = 1;
row["NickName"] = "人物1";
row["QNumber"] = "21243468";
table.Rows.Add(row);
row = table.NewRow();
row["ID"] = 2;
row["NickName"] = "人物2";
row["QNumber"] = "9058307";
table.Rows.Add(row);
Microsoft.Office.Interop.Excel.Application excelApp = new Microsoft.Office.Interop.Excel.Application();
Workbook excelWB = excelApp.Workbooks.Add(System.Type.Missing);//创建工作簿(WorkBook:即Excel文件主体本身)
Worksheet excelWS = (Worksheet)excelWB.Worksheets[1];//创建工作表(即Excel里的子表sheet) 1表示在子表sheet1里进行数据导出
//将数据导入到工作表的单元格
for (int i = 0; i < table.Rows.Count; i++)
{
for (int j = 0; j < table.Columns.Count; j++)
{
excelWS.Cells[i + 1, j + 1] = table.Rows[i][j].ToString(); //Excel单元格第一个从索引1开始
}
}
excelWB.SaveAs("D:\\abc.xlsx");
excelWB.Close();
excelApp.Quit();
}