谁能给个用C#从SQL 2005中导出数据到excel文档的例子?非常感谢! C#最好做成个应用程序,有专门的窗口。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 新建一个页面,在页面上输入你要生成的东西。在.cs页面中的PAGE_LOAD事件里加上这句话。:Response.ContentType = "application/vnd.ms-excel"; Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("统计表", System.Text.Encoding.UTF8) + ".xls"); 都是附带在项目里,,哪里有专门做个窗口的,,要时间地,,你能读2005的数据,,再搜下怎么新建EXCEL工作簿就行啦,基本写进去非常容易,只要找到那几个新建工作簿的命令就行了 winform?先将数据库导入DataSet,在DataGridView显示,然后再导入Excel就可以了private void insertToExcel(DataGridView gridView) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl files (*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = false; //文件不存在是是否提示新建 saveFileDialog.OverwritePrompt = false; //文件存在是是否提示覆盖 saveFileDialog.Title = "文件保存路径"; saveFileDialog.ShowDialog(); string strName = saveFileDialog.FileName; if (strName.Length != 0) { if (strName != FileName) { System.Reflection.Missing miss = System.Reflection.Missing.Value; Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass(); excel.Application.Workbooks.Add(true); ; excel.Visible = false; //若是true,则在导出的时候会显示EXcel界面。 if (excel == null) { MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks; Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss)); Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet; sheet.Name = "Sheet1"; for (int i = 0; i < gridView.ColumnCount; i++) //生成字段名称 { excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText.ToString(); } for (int i = 0; i < gridView.RowCount; i++) //填充数据 { for (int j = 0; j < gridView.ColumnCount; j++) { if (gridView[j, i].Value == typeof(string)) { excel.Cells[i + 2, j + 1] = "" + gridView[i, j].Value.ToString(); } else { excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString(); } } } sheet.SaveAs(strName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss); book.Close(false, miss, miss); books.Close(); excel.Quit(); System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet); System.Runtime.InteropServices.Marshal.ReleaseComObject(book); System.Runtime.InteropServices.Marshal.ReleaseComObject(books); System.Runtime.InteropServices.Marshal.ReleaseComObject(excel); GC.Collect(); MessageBox.Show("数据已经成功导出到:" + saveFileDialog.FileName.ToString(), "追加完成", MessageBoxButtons.OK, MessageBoxIcon.Information); KillExcel(); } else { MessageBox.Show("该文件正在被使用,请用别的文件名", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error); this.dgvshow.DataSource = dt; } } } 如何找到在网上发信息的人?SQL如何防注入? 保存 string操作问题 C# 操作Excel问题 如何获得指定日期格式 关于Assembly.LoadFrom和Assembly.LoadFile的问题 如何捕捉WINDWOS系统错误窗口 在windows上安装oracle和在linux 上安装oracle数据库服务器,客户端连接服务器的代码是否一样 窗体编程里 有了Timer 定时触发 是不是就用不着事件了呢? 关于TabPages控件 急啊,c#操作数据库的问题 大家都会遇到的问题,不知道你们怎么解决的
Response.ContentType = "application/vnd.ms-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode("统计表", System.Text.Encoding.UTF8) + ".xls");
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = false; //文件不存在是是否提示新建
saveFileDialog.OverwritePrompt = false; //文件存在是是否提示覆盖
saveFileDialog.Title = "文件保存路径";
saveFileDialog.ShowDialog();
string strName = saveFileDialog.FileName;
if (strName.Length != 0)
{
if (strName != FileName)
{
System.Reflection.Missing miss = System.Reflection.Missing.Value;
Microsoft.Office.Interop.Excel.ApplicationClass excel = new Microsoft.Office.Interop.Excel.ApplicationClass();
excel.Application.Workbooks.Add(true); ;
excel.Visible = false; //若是true,则在导出的时候会显示EXcel界面。
if (excel == null)
{
MessageBox.Show("EXCEL无法启动!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
return;
}
Microsoft.Office.Interop.Excel.Workbooks books = (Microsoft.Office.Interop.Excel.Workbooks)excel.Workbooks;
Microsoft.Office.Interop.Excel.Workbook book = (Microsoft.Office.Interop.Excel.Workbook)(books.Add(miss));
Microsoft.Office.Interop.Excel.Worksheet sheet = (Microsoft.Office.Interop.Excel.Worksheet)book.ActiveSheet;
sheet.Name = "Sheet1"; for (int i = 0; i < gridView.ColumnCount; i++) //生成字段名称
{
excel.Cells[1, i + 1] = gridView.Columns[i].HeaderText.ToString();
} for (int i = 0; i < gridView.RowCount; i++) //填充数据
{
for (int j = 0; j < gridView.ColumnCount; j++)
{
if (gridView[j, i].Value == typeof(string))
{
excel.Cells[i + 2, j + 1] = "" + gridView[i, j].Value.ToString();
}
else
{
excel.Cells[i + 2, j + 1] = gridView[j, i].Value.ToString();
}
}
}
sheet.SaveAs(strName, miss, miss, miss, miss, miss, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlNoChange, miss, miss, miss);
book.Close(false, miss, miss);
books.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(sheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(book);
System.Runtime.InteropServices.Marshal.ReleaseComObject(books);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
GC.Collect();
MessageBox.Show("数据已经成功导出到:" + saveFileDialog.FileName.ToString(), "追加完成", MessageBoxButtons.OK, MessageBoxIcon.Information);
KillExcel();
}
else
{
MessageBox.Show("该文件正在被使用,请用别的文件名", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
this.dgvshow.DataSource = dt;
}
}
}