如何使用C#将DataTable中的数据导入Excle,求大神指导!!!

使用C#将DataTable中的数据导入Excle时,Excle.不能带出Applicationg,如上图,请教各位大神。来个完整的程序最好,一定要带上前面的using部分。

第1个回答  2013-10-18
public bool CreateExcelFileForDataTable(System.Data.DataTable table, string strFullFilePath, string title)
{
FileInfo file = new FileInfo(strFullFilePath);
if (file.Exists)
{
file.Delete();
}
int rowIndex = 3; //开始写入数据的单元格行
int colIndex = 0; //开始写入数据的单元格列
System.Reflection.Missing miss = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.ApplicationClass mExcel = new Microsoft.Office.Interop.Excel.ApplicationClass();
mExcel.Visible = false;
Microsoft.Office.Interop.Excel.Workbooks mBooks = (Microsoft.Office.Interop.Excel.Workbooks)mExcel.Workbooks;
Microsoft.Office.Interop.Excel.Workbook mBook = (Microsoft.Office.Interop.Excel.Workbook)(mBooks.Add(miss));
Microsoft.Office.Interop.Excel.Worksheet mSheet = (Microsoft.Office.Interop.Excel.Worksheet)mBook.ActiveSheet;
Microsoft.Office.Interop.Excel.Range er = mSheet.get_Range((object)"A1", System.Reflection.Missing.Value); //向Excel文件中写入标题文本
er.Value2 = title;
try
{
foreach (DataColumn col in table.Columns) //将所得到的表的列名,赋值给单元格
{
colIndex++;
mSheet.Cells[3, colIndex] = col.ColumnName;
}
foreach (DataRow row in table.Rows) //同样方法处理数据
{
rowIndex++;
colIndex = 0;
foreach (DataColumn col in table.Columns)
{
colIndex++;
if (colIndex == 2)
{
mSheet.Cells[rowIndex, colIndex] = "'" + row[col.ColumnName].ToString();//第二行数据为银行帐号信息转换为字符防止首位0丢失
}
else
{
mSheet.Cells[rowIndex, colIndex] = row[col.ColumnName].ToString();
}
}
}
//保存工作已写入数据的工作表
mBook.SaveAs(strFullFilePath, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss);
return true;
}
catch (Exception ee)
{
throw new Exception(ee.Message);
}
finally //finally中的代码主要用来释放内存和中止进程()
{
mBook.Close(false, miss, miss);
mBooks.Close();
mExcel.Quit();
GC.Collect();
}
}
引用里要添加:
Microsoft.Office.Interop.Excel;追问

引用里要添加:
Microsoft.Office.Interop.Excel;就是这个东西,我的引用里带不出来,我难搞啊!

第2个回答  2013-10-18
public static void ToExcel(DataTable dt, string Filter, string FileName, string SheetName)
{
if (string.IsNullOrEmpty(FileName))
{
return;
}

//要保证文件存在
string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\"" + FileName + "\";Extended Properties=\"Excel 8.0;HDR=YES\"";
OleDbConnection oleConnection = new OleDbConnection(connStr);
oleConnection.Open();
OleDbCommand oleCmd = new OleDbCommand();
//删除同名的表
try
{
oleCmd.Connection = oleConnection;
oleCmd.CommandText = string.Format("drop table [{0}]", SheetName);
oleCmd.CommandType = CommandType.Text;
oleCmd.ExecuteNonQuery();
}
catch
{

}
//创建表(相同结构),表不能重复
StringBuilder strsql = new StringBuilder();
strsql.AppendFormat("Create table [{0}]", SheetName);
strsql.Append(" (");
foreach (DataColumn col in dt.Columns)
{
strsql.AppendFormat("[{0}] {1},", col.ColumnName, GetDataType(col.DataType));
}
strsql.Remove(strsql.Length - 1, 1);
strsql.Append(" ) ");

oleCmd.Connection = oleConnection;
oleCmd.CommandType = CommandType.Text;

oleCmd.CommandText = strsql.ToString();
oleCmd.ExecuteNonQuery();

oleConnection.Close();
//将dt中的数据填充到当前的excle的表中
OleDbDataAdapter oleAdpater = new OleDbDataAdapter("select * from [" + SheetName + "]", oleConnection);

DataTable dt_excel = new DataTable();
oleAdpater.Fill(dt_excel);

oleAdpater.InsertCommand = SqlInsert(SheetName, dt, oleConnection);
DataRow dr_excel;
if (Filter == null) Filter = "";
foreach (DataRow dr in dt.Select(Filter))
{
dr_excel = dt_excel.NewRow();
foreach (DataColumn col in dt.Columns)
{
dr_excel[col.ColumnName] = dr[col.ColumnName];
}
dt_excel.Rows.Add(dr_excel);
}
oleAdpater.Update(dt_excel);
}
不需要任何插件,只需要引用using System.Data.OleDb;直接可用
给你源码,自己研究去吧本回答被提问者采纳

C#实现将DataTable内容输出到Excel表格的方法
具体如下:1.关于本文本文描述了一个函数(SaveToExcel),该函数可以将DataTable数据内的数据输出到Excel表格中2.相关说明1)本文中使用这个函数将一个DataTable中的内容输出到路径名为addr的目录下:复制代码代码如下:public void SaveToExcel(string addr, System.Data.DataTable dt)2)这个函数需要引用M...

c#怎么将datatable数据保存到excel中
\/\/得到在datatable里的数据 DataTable dt = GetDataTable();\/\/从第一行第一列开始插入数据,true代表数据包含列名 sheet.InsertDataTable(dt, true, 1, 1);\/\/保存文件 workbook.SaveToFile("ExportDataToExcel.xlsx",ExcelVersion.Version2013);代码整理参考自原文。

怎么用C#把数据库中的数据导出到EXCEL
private void DataTabletoExcel(System.Data.DataTable tmpDataTable,string strFileName){ if (tmpDataTable == null){ return;} int rowNum = tmpDataTable.Rows.Count;int columnNum = tmpDataTable.Columns.Count;int rowIndex = 1;int columnIndex = 0;Excel.Application xlApp = new Excel....

用C#,将DataTable中的数据导出到Excel2007,求各位大神指导。。而且一...
sheet.ImportDataTable(dt, true, 3, 1, -1, -1); \/\/Header Style IStyle headerStyle = workbook.Styles.Add("HeaderStyle"); headerStyle.BeginUpdate(); \/\/Add custom colors to the palette. \/\/workbook.SetPaletteColor(8, Color.FromArgb(182, 189, 218)); headerS...

c#.net 中 如何将gridview中的数据导出到excel中? 网上的好多办法是将...
1:需要导入的EXCEL采用引用EXCEL类的方法输出。这种方法保证了EXCEL输出的标准格式。但是需要服务器安装EXCEL 且容易造成进程锁死,给系统稳定性造成影响。2:将导出的EXCEL另存为一次。这种方法固然好使,但是是不是能接受每次都另存为是个问题。3:采用第三方控件导出。目前我接触的第三方控件是 Myxls ...

C#和数据库连接以后怎样把数据导入到excel表中啊?
1.将数据库数据存储到文本文件中,格式为xxx|xxx|xxx|,或者xxx(tab)xxx(tab),然后使用excel文本导入功能(这个很简单实用,因为导出到excel表中的东西再进行修改或者调整操作就很容易了)2.使用c#水晶报表功能直接写入excel 3.很麻烦,首先将excel范例导出为xml,然后使用文本编辑器打开,根据该文本...

C# 导出Excel的6种简单方法实现
1. **数据表导出到 Excel 使用 Syncfusion Excel (XlsIO) 库,数据表中的数据可以轻松地导出到 Excel 工作表。通过 ImportDataTable 方法,可以实现数据表的导出。例如,对于员工详细信息的数据表,可以利用以下代码示例将其导出到 Excel 工作表。2. **对象集合导出到 Excel 将对象集合中的数据导出到 ...

C#winform中如何把表导出到EXCEL
public bool ExportToExcelOF(System.Data.DataSet ds, string ReportName){ if (ds.Tables[0].Rows.Count == 0){ MessageBox.Show("数据集为空");} string FileName = filePath;\/\/System.Data.DataTable dt = new System.Data.DataTable();FileStream objFileStream;StreamWriter objStreamWriter...

C#实现 SQL导出到excel
DataTable dt = ds.Tables[0];DataRow[] myRow = dt.Select("");\/\/ typeid=="1"时导出为EXCEL格式文件;typeid=="2"时导出为XML格式文件 if (typeid == "1"){ \/\/取得数据表各列标题,各标题之间以\\t分割,最后一个列标题后加回车符 for (i = 0; i < dt.Columns.Count - 1; ...

C#中怎么样把DataTable中的数据写入指定的EXCEL表,就是导出数据时自己选...
可以调用 Microsoft .office. interop.excel 组件或着下一个apose.excel 组件 个人觉得后者比较好用

相似回答