请各位一下.如何将C#中的数据网格表中的数据导到EXCEL表中? 是GridView导出EXCEL吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 从网上找到的,引用Excel库using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Forms;using System.Data.SqlClient;using Excel;namespace CSharpTest{ public partial class FrmDgvToTiao : Form { public FrmDgvToTiao() { InitializeComponent(); } /// <summary> /// 改造原生成表的方法生成条试试 /// </summary> /// <param name="gridView"></param> /// <param name="fileName"></param> /// <param name="isShowExcle"></param> /// <returns></returns> public static bool ExportForDataGridview(DataGridView gridView, string fileName, bool isShowExcle) { //建立Excel对象 //Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application(); Excel.Application app = new Excel.Application();//上面语句原版,本环境中不对,改成本句可以了 try { if (app == null) { return false; } app.Visible = isShowExcle; Workbooks workbooks = app.Workbooks; _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); Sheets sheets = workbook.Worksheets; _Worksheet worksheet = (_Worksheet)sheets.get_Item(1); if (worksheet == null) { return false; } string sLen = ""; //取得最后一列列名 char H = (char)(64 + gridView.ColumnCount / 26); char L = (char)(64 + gridView.ColumnCount % 26); if (gridView.ColumnCount < 26) { sLen = L.ToString(); } else { sLen = H.ToString() + L.ToString(); } //标题 string sTmp = sLen + "1"; Range ranCaption = worksheet.get_Range(sTmp, "A1"); string[] asCaption = new string[gridView.ColumnCount]; for (int i = 0; i < gridView.ColumnCount; i++) { asCaption[i] = gridView.Columns[i].HeaderText; } ranCaption.Value2 = asCaption; //数据 object[] obj = new object[gridView.Columns.Count]; for (int r = 0; r < gridView.RowCount - 1; r++) { for (int l = 0; l < gridView.Columns.Count; l++) { if (gridView[l, r].ValueType == typeof(DateTime)) { obj[l] = gridView[l, r].Value.ToString(); } else { obj[l] = gridView[l, r].Value; } } string cell1 = sLen + ((int)(r + 2)).ToString(); string cell2 = "A" + ((int)(r + 2)).ToString(); Range ran = worksheet.get_Range(cell1, cell2); ran.Value2 = obj; } //保存 workbook.SaveCopyAs(fileName); workbook.Saved = true; } finally { //关闭 app.UserControl = false; app.Quit(); } return true; } private void FrmDgvToTiao_Load(object sender, EventArgs e) { string sql = "select * from jobs"; this.dataGridView1.DataSource = DB.runSelect(sql); } private void button1_Click(object sender, EventArgs e) { //ExportForDataGridview(this.dataGridView1,"d:\\xxxaaabbb.xls",false);//返回一个bool值,可以接收,也可不接收,此以绝对路径 //下行为相对路径写法以年月日时分秒来作为要导出的Excel文件名,保证不重复 string pf = System.Windows.Forms.Application.StartupPath.Replace("bin\\Debug", "ExcelFile") + "\\" + DateTime.Now.ToString().Replace(":", "").Replace(" ", "").Replace("-", "") + ".xls"; ExportForDataGridview(this.dataGridView1, pf, false); MessageBox.Show("导出成功!电子表格文件位置:"+pf); this.Close(); this.Dispose(); } }}或者你用一个MS表格,表格中带有导入到excel的功能,控制它的显隐 http://www.cnblogs.com/stswordman/archive/2006/08/24/485641.htmlGridView导出Excel研究 请问Nokia sdk都有哪些?比如我的5200带蓝牙,去哪下载相对应的sdk呢? C# 插件问题 大侠帮帮小弟吧.System.Data.OleDb.OleDbException: 未指定的错误.在线等 word插入表格问题 关于WinForm窗口控制问题!! 一个关于文件配置的问题,请高手指教啊:) Web打印问题(框架集中的指定单页打印) Xml文件里面的xml:space属性不起作用啊?? 为什么看不到服务器控件? 急,急,急,如何在程序的任意部分引用一组已赋过值的变量 这种程序有可能实现吗?鼠标自动点击网页广告。 vs2005里,有没有编译当前项目的快捷键
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;
using Excel;namespace CSharpTest
{
public partial class FrmDgvToTiao : Form
{
public FrmDgvToTiao()
{
InitializeComponent();
}
/// <summary>
/// 改造原生成表的方法生成条试试
/// </summary>
/// <param name="gridView"></param>
/// <param name="fileName"></param>
/// <param name="isShowExcle"></param>
/// <returns></returns>
public static bool ExportForDataGridview(DataGridView gridView, string fileName, bool isShowExcle)
{
//建立Excel对象
//Microsoft.Office.Interop.Excel.Application app = new Microsoft.Office.Interop.Excel.Application();
Excel.Application app = new Excel.Application();//上面语句原版,本环境中不对,改成本句可以了
try
{
if (app == null)
{
return false;
} app.Visible = isShowExcle;
Workbooks workbooks = app.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = workbook.Worksheets;
_Worksheet worksheet = (_Worksheet)sheets.get_Item(1);
if (worksheet == null)
{
return false;
}
string sLen = "";
//取得最后一列列名
char H = (char)(64 + gridView.ColumnCount / 26);
char L = (char)(64 + gridView.ColumnCount % 26);
if (gridView.ColumnCount < 26)
{
sLen = L.ToString();
}
else
{
sLen = H.ToString() + L.ToString();
}
//标题
string sTmp = sLen + "1";
Range ranCaption = worksheet.get_Range(sTmp, "A1");
string[] asCaption = new string[gridView.ColumnCount];
for (int i = 0; i < gridView.ColumnCount; i++)
{
asCaption[i] = gridView.Columns[i].HeaderText;
}
ranCaption.Value2 = asCaption;
//数据
object[] obj = new object[gridView.Columns.Count];
for (int r = 0; r < gridView.RowCount - 1; r++)
{
for (int l = 0; l < gridView.Columns.Count; l++)
{
if (gridView[l, r].ValueType == typeof(DateTime))
{
obj[l] = gridView[l, r].Value.ToString();
}
else
{
obj[l] = gridView[l, r].Value;
}
}
string cell1 = sLen + ((int)(r + 2)).ToString();
string cell2 = "A" + ((int)(r + 2)).ToString();
Range ran = worksheet.get_Range(cell1, cell2);
ran.Value2 = obj;
}
//保存
workbook.SaveCopyAs(fileName);
workbook.Saved = true;
}
finally
{
//关闭
app.UserControl = false;
app.Quit();
}
return true;
} private void FrmDgvToTiao_Load(object sender, EventArgs e)
{
string sql = "select * from jobs";
this.dataGridView1.DataSource = DB.runSelect(sql);
} private void button1_Click(object sender, EventArgs e)
{
//ExportForDataGridview(this.dataGridView1,"d:\\xxxaaabbb.xls",false);//返回一个bool值,可以接收,也可不接收,此以绝对路径
//下行为相对路径写法以年月日时分秒来作为要导出的Excel文件名,保证不重复
string pf = System.Windows.Forms.Application.StartupPath.Replace("bin\\Debug", "ExcelFile") + "\\" + DateTime.Now.ToString().Replace(":", "").Replace(" ", "").Replace("-", "") + ".xls";
ExportForDataGridview(this.dataGridView1, pf, false);
MessageBox.Show("导出成功!电子表格文件位置:"+pf);
this.Close();
this.Dispose();
}
}
}
或者你用一个MS表格,表格中带有导入到excel的功能,控制它的显隐
GridView导出Excel研究