求助:我有4个datagridview 需要导入到同一个excel文件里的不同sheets里 如果你导出的数据不需要设置格式什么的,可以使用Ado.net的OLEDB来连接EXCEL这玩意可以创建EXCEL文件,可以创建SHEET,创建使用SQL的Create table命令找个参考给你如果要设置格式且表格不规则,参考能帮助你直接读写office文件流的库 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 OpenFileDialog ofd = new OpenFileDialog(); ofd.Title = "打开(Open)"; ofd.FileName = ""; ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); ofd.Filter="文本文件(*.xls)|*.xls"; string Filepath = ofd.FileName; string Sheetname = "Sheet1";//改变这里的值即取得不同sheets的内容 string Strcon; Strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Filepath + ";Extended Properties=Excel 5.0;"; OleDbConnection conn = new OleDbConnection(Strcon); OleDbDataAdapter oleda = new OleDbDataAdapter("select * from [" + Sheetname + "$]", Strcon); DataSet ds = new DataSet(); oleda.Fill(ds); dataGridView1.DataSource = ds.Tables[0].DefaultView; public static void ExportExcel(DataSet ds, String FName) { if (ds == null) return; string saveFileName = ""; bool fileSaved = false; SaveFileDialog saveDialog = new SaveFileDialog(); saveDialog.DefaultExt = "xls"; saveDialog.Filter = "Excel文件|*.xls"; saveDialog.FileName = FName; saveDialog.ShowDialog(); saveFileName = saveDialog.FileName; if (saveFileName.IndexOf(":") < 0) return; Excel.Application xlApp = new Excel.Application(); if (xlApp == null) { MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel"); return; } Workbooks workbooks = xlApp.Workbooks; Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); Worksheet worksheet = (Worksheet)workbook.Worksheets[1];//取得sheet1(这里是重点) //写入字段 for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { worksheet.Cells[1, i + 1] = ds.Tables[0].Columns[i].ColumnName; } //写入数值 for (int r = 0; r < ds.Tables[0].Rows.Count; r++) { for (int i = 0; i < ds.Tables[0].Columns.Count; i++) { worksheet.Cells[r + 2, i + 1] = ds.Tables[0].Rows[r][i].ToString(); } System.Windows.Forms.Application.DoEvents(); } worksheet.Columns.EntireColumn.AutoFit(); if (saveFileName != "") { try { workbook.Saved = true; workbook.SaveCopyAs(saveFileName); fileSaved = true; } catch (Exception ex) { fileSaved = false; MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message); } } else { fileSaved = false; } xlApp.Quit(); GC.Collect(); if (fileSaved && File.Exists(saveFileName)) Process.Start(saveFileName); } 都没看人家的问题,他是要保存到Excel,你这是读取Excel Excel.Application eAppWr = new Excel.ApplicationClass();eAppWr.Visible = true;//打开或者创建Excel文件Excel.Workbook eBookWr = eApp.Workbooks.Open(strPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);//Excel.Workbook eBookWr = eAppWr.Workbooks.Add(1);//添加SheetExcel.Worksheet eSheetWr = (Excel.Worksheet)eBookWr.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);//Sheet重命名eSheetWr.Name = strSheetName;//循环,写入数据,rowindex,colindex都是从1开始//SheetWr.cells[rowindex,colindex]=strValue;//循环结束//保存eBookWr.Save();// 遍历数据,添加多个sheetExcel.Application app = new Excel.ApplicationClass(); app.Visible = true; Excel.Workbook workBook = app.Workbooks.Open(templetFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing); Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1); for(int i=1;i <sheetCount;i++) { ((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing,workBook.Worksheets[i]); } http://topic.csdn.net/u/20100627/11/c8a9319e-9d86-4792-98ed-7add7374ad6c.html 不包含适合于入口点的静态“Main”方法 winform怎么实现橡皮擦,非纯色背景 C# 如何在新选项卡中打开一个网页 C# contextMenuStrip1 鼠标经过的一级菜单更改颜色,如何实现? 如何通过email发送邀请 新手求教(关于数据库) 一个字符引发的错误!~~高手请进~~速度结帖! 如何在 listView里实现当鼠标移动到某个数据项时,会自动提示该行的信息? 鼠标问题 关于C#的绘图功能 如何生成软件序列号 A.replace(/^([+-]?\d+)(\d\d\d)/,"$1,$2");
OpenFileDialog ofd = new OpenFileDialog();
ofd.Title = "打开(Open)";
ofd.FileName = "";
ofd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
ofd.Filter="文本文件(*.xls)|*.xls"; string Filepath = ofd.FileName;
string Sheetname = "Sheet1";//改变这里的值即取得不同sheets的内容
string Strcon;
Strcon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Filepath + ";Extended Properties=Excel 5.0;";
OleDbConnection conn = new OleDbConnection(Strcon);
OleDbDataAdapter oleda = new OleDbDataAdapter("select * from [" + Sheetname + "$]", Strcon);
DataSet ds = new DataSet();
oleda.Fill(ds);
dataGridView1.DataSource = ds.Tables[0].DefaultView;
{
if (ds == null) return; string saveFileName = "";
bool fileSaved = false;
SaveFileDialog saveDialog = new SaveFileDialog();
saveDialog.DefaultExt = "xls";
saveDialog.Filter = "Excel文件|*.xls";
saveDialog.FileName = FName;
saveDialog.ShowDialog();
saveFileName = saveDialog.FileName;
if (saveFileName.IndexOf(":") < 0) return; Excel.Application xlApp = new Excel.Application(); if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机子未安装Excel");
return;
} Workbooks workbooks = xlApp.Workbooks;
Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Worksheet worksheet = (Worksheet)workbook.Worksheets[1];//取得sheet1(这里是重点)
//写入字段
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = ds.Tables[0].Columns[i].ColumnName;
}
//写入数值 for (int r = 0; r < ds.Tables[0].Rows.Count; r++)
{
for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
{
worksheet.Cells[r + 2, i + 1] = ds.Tables[0].Rows[r][i].ToString();
}
System.Windows.Forms.Application.DoEvents();
}
worksheet.Columns.EntireColumn.AutoFit(); if (saveFileName != "")
{
try
{
workbook.Saved = true;
workbook.SaveCopyAs(saveFileName);
fileSaved = true;
}
catch (Exception ex)
{
fileSaved = false;
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + ex.Message);
}
}
else
{
fileSaved = false;
}
xlApp.Quit();
GC.Collect();
if (fileSaved && File.Exists(saveFileName)) Process.Start(saveFileName);
}
Excel.Application eAppWr = new Excel.ApplicationClass();
eAppWr.Visible = true;
//打开或者创建Excel文件
Excel.Workbook eBookWr = eApp.Workbooks.Open(strPath, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
//Excel.Workbook eBookWr = eAppWr.Workbooks.Add(1);
//添加Sheet
Excel.Worksheet eSheetWr = (Excel.Worksheet)eBookWr.Worksheets.Add(Type.Missing, Type.Missing, Type.Missing, Type.Missing);
//Sheet重命名
eSheetWr.Name = strSheetName;
//循环,写入数据,rowindex,colindex都是从1开始
//SheetWr.cells[rowindex,colindex]=strValue;
//循环结束
//保存
eBookWr.Save();
//
Excel.Application app = new Excel.ApplicationClass();
app.Visible = true;
Excel.Workbook workBook = app.Workbooks.Open(templetFile,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing,missing);
Excel.Worksheet workSheet = (Excel.Worksheet)workBook.Sheets.get_Item(1);
for(int i=1;i <sheetCount;i++)
{
((Excel.Worksheet)workBook.Worksheets.get_Item(i)).Copy(missing,workBook.Worksheets[i]);
}
http://topic.csdn.net/u/20100627/11/c8a9319e-9d86-4792-98ed-7add7374ad6c.html