跪求例子,关于winform导出word,Excel功能. 现有一窗体 只有一个DataGridView 和一个按钮 初始化的时候DataGridView的值已经被绑定好了...当点击按钮的时候把DataGridView的值导出的Excel,word里.... 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/jilm168/archive/2007/11/06/1869118.aspx http://topic.csdn.net/u/20091029/17/47f39430-c6bf-43f5-a79e-02cdc0a268f1.html代码一大堆啊一搜一大把 人家要的是 winform你给的是web。 http://topic.csdn.net/u/20091029/17/47f39430-c6bf-43f5-a79e-02cdc0a268f1.html网上一搜一大把的 哥们,web的跟winform的一样? 将DataGridView 数据导出到Excel(当页)||(所有) http://net-liu.javaeye.com/blog/699307 public static void ExportExcel(DataGridView dgv) { #region 导出Excel try { int lvA = 0; for (int i = 0; i < dgv.Columns.Count; i++) { if (dgv.Columns[i].Visible) { lvA++; } } int rowCount = dgv.RowCount; int columnCount = lvA; Microsoft.Office.Interop.Excel.Application exc = new Microsoft.Office.Interop.Excel.Application(); if (exc == null) { throw new Exception("Excel无法启动"); } exc.Visible = true; Workbooks workbooks = exc.Workbooks; _Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet); Sheets sheets = exc.Sheets; _Worksheet worksheet = (_Worksheet)sheets[1]; if (worksheet == null) { throw new Exception("Worksheet error"); } Range r = worksheet.get_Range("A1", Missing.Value); if (r == null) { MessageBox.Show("Range无法启动"); throw new Exception("Range error"); } //以上是一些例行的初始化工作,下面进行具体的信息填充 //填充标题 int ColIndex = 1; for (int i = 0; i < dgv.ColumnCount; i++) { if (dgv.Columns[i].Visible) { worksheet.Cells[1, ColIndex++] = dgv.Columns[i].HeaderText; } } //获取DataGridView中的所有行和列的数值,填充到一个二维数组中. object[,] myData = new object[rowCount + 1, columnCount]; for (int j = 0; j < dgv.Rows.Count; j++) { int a = 0; for (int k = 0; k < dgv.Columns.Count; k++) { if (k > 0) { if (dgv.Rows[j].Cells[k].Visible) { a++; myData[j, a] = dgv[k, j].Value; } } else if (dgv.Rows[j].Cells[k].Visible) { myData[j, a] = dgv[k, j].Value; } } } //将填充好的二维数组填充到Excel对象中. r = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[rowCount + 1, columnCount]); r.Value2 = myData; } catch (Exception ex) { MessageBox.Show(ex.Message); } #endregion }导出Excel 把DataGridView传进去就行! 注意命名空间 private void button4_Click(object sender, EventArgs e) { SaveFileDialog saveFileDialog = new SaveFileDialog(); saveFileDialog.Filter = "Execl files (*.xls)|*.xls"; saveFileDialog.FilterIndex = 0; saveFileDialog.RestoreDirectory = true; saveFileDialog.CreatePrompt = true; saveFileDialog.Title = "导出Excel文件到"; DateTime now = DateTime.Now; saveFileDialog.FileName = now.Year.ToString().PadLeft(2) + now.Month.ToString().PadLeft(2, '0') + now.Day.ToString().PadLeft(2, '0') + "-" + now.Hour.ToString().PadLeft(2, '0') + now.Minute.ToString().PadLeft(2, '0') + now.Second.ToString().PadLeft(2, '0'); saveFileDialog.ShowDialog(); Stream myStream; myStream = saveFileDialog.OpenFile(); StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312")); string str = ""; try { //写标题 for (int i = 0; i < dataGridView1.ColumnCount; i++) { if (i > 0) { str += "\t"; } str += dataGridView1.Columns[i].HeaderText; } sw.WriteLine(str); //写内容 for (int j = 0; j < dataGridView1.Rows.Count; j++) { string tempStr = ""; for (int k = 0; k < dataGridView1.Columns.Count; k++) { if (k > 0) { tempStr += "\t"; } tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString(); } sw.WriteLine(tempStr); } sw.Close(); myStream.Close(); } catch (Exception ex) { MessageBox.Show("您取消了此次操作"); } finally { sw.Close(); myStream.Close(); } } object 未包含 get_Range 的定义a b c1 2 31 2 3只能把a,b,c导进去剩下的都没进去 - - #11楼用的是 SaveFileDialog saveFileDialog = new SaveFileDialog();路径你自己设置啊,保存对话框都弹出了啊还有就是这种问题就别跪了啊Google出一堆来的啊 设置路径是小事导出是大事......#11的是正解 ...但是能不能导出word 啊? vs2010 何时是测试,何时是正常使用? 专家请进!窗口处理消息的一些疑惑(在线等) '?'附近语法错误~~ 如何设置datagridview的scrollbar? 超级难题,高手进来挑战挑战看!50分哟!!!!!!!!!! C#如何实现在textBox1上敲回车时光标跳至button2 ? 动态控制datagridview外观与显示列 状态栏的显示 打不开页面,为什么?帮忙帮忙~~~ 一个事件的问题,请高手来帮忙。 在页面初始化时或查询数据时会比较慢,有没有办法加个等待页面上去? VS2010 Unit Test 工程问题 急急急!
代码一大堆啊一搜一大把
你给的是web
。
网上一搜一大把的
哥们,web的跟winform的一样?
http://net-liu.javaeye.com/blog/699307
{
#region 导出Excel
try
{
int lvA = 0;
for (int i = 0; i < dgv.Columns.Count; i++)
{
if (dgv.Columns[i].Visible)
{
lvA++;
}
}
int rowCount = dgv.RowCount;
int columnCount = lvA;
Microsoft.Office.Interop.Excel.Application exc = new Microsoft.Office.Interop.Excel.Application();
if (exc == null)
{
throw new Exception("Excel无法启动");
}
exc.Visible = true;
Workbooks workbooks = exc.Workbooks;
_Workbook workbook = workbooks.Add(XlWBATemplate.xlWBATWorksheet);
Sheets sheets = exc.Sheets;
_Worksheet worksheet = (_Worksheet)sheets[1];
if (worksheet == null)
{
throw new Exception("Worksheet error");
}
Range r = worksheet.get_Range("A1", Missing.Value);
if (r == null)
{
MessageBox.Show("Range无法启动");
throw new Exception("Range error");
}
//以上是一些例行的初始化工作,下面进行具体的信息填充
//填充标题
int ColIndex = 1;
for (int i = 0; i < dgv.ColumnCount; i++)
{
if (dgv.Columns[i].Visible)
{
worksheet.Cells[1, ColIndex++] = dgv.Columns[i].HeaderText;
}
}
//获取DataGridView中的所有行和列的数值,填充到一个二维数组中.
object[,] myData = new object[rowCount + 1, columnCount];
for (int j = 0; j < dgv.Rows.Count; j++)
{
int a = 0;
for (int k = 0; k < dgv.Columns.Count; k++)
{
if (k > 0)
{
if (dgv.Rows[j].Cells[k].Visible)
{
a++;
myData[j, a] = dgv[k, j].Value;
}
}
else if (dgv.Rows[j].Cells[k].Visible)
{
myData[j, a] = dgv[k, j].Value;
}
}
}
//将填充好的二维数组填充到Excel对象中.
r = worksheet.get_Range(worksheet.Cells[2, 1], worksheet.Cells[rowCount + 1, columnCount]);
r.Value2 = myData;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
#endregion
}
导出Excel 把DataGridView传进去就行! 注意命名空间
{
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Execl files (*.xls)|*.xls";
saveFileDialog.FilterIndex = 0;
saveFileDialog.RestoreDirectory = true;
saveFileDialog.CreatePrompt = true;
saveFileDialog.Title = "导出Excel文件到"; DateTime now = DateTime.Now;
saveFileDialog.FileName = now.Year.ToString().PadLeft(2)
+ now.Month.ToString().PadLeft(2, '0')
+ now.Day.ToString().PadLeft(2, '0') + "-"
+ now.Hour.ToString().PadLeft(2, '0')
+ now.Minute.ToString().PadLeft(2, '0')
+ now.Second.ToString().PadLeft(2, '0'); saveFileDialog.ShowDialog(); Stream myStream;
myStream = saveFileDialog.OpenFile();
StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
string str = "";
try
{
//写标题
for (int i = 0; i < dataGridView1.ColumnCount; i++)
{
if (i > 0)
{
str += "\t";
}
str += dataGridView1.Columns[i].HeaderText;
} sw.WriteLine(str);
//写内容
for (int j = 0; j < dataGridView1.Rows.Count; j++)
{
string tempStr = "";
for (int k = 0; k < dataGridView1.Columns.Count; k++)
{
if (k > 0)
{
tempStr += "\t";
}
tempStr += dataGridView1.Rows[j].Cells[k].Value.ToString();
}
sw.WriteLine(tempStr);
}
sw.Close();
myStream.Close();
}
catch (Exception ex)
{
MessageBox.Show("您取消了此次操作");
}
finally
{
sw.Close();
myStream.Close();
}
}
1 2 3
1 2 3只能把a,b,c导进去剩下的都没进去 - -
路径你自己设置啊,保存对话框都弹出了啊
还有就是这种问题就别跪了啊Google出一堆来的啊
但是能不能导出word 啊?