如何把DataGridView的数据导进Excel中? 如何把DataGridView的数据导进Excel中? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 将dataGridview的datasource 做为表然后将表导入excel中(这个google出一堆) StringWriter sw = new StringWriter();sw.WriteLine("库存-出入库统计\t仓库编号\t商品编号\t数量\t商品类别\t出入库类型");for (int i = 0; i < GridView1.Rows.Count; i++){ sw.WriteLine( "\t" + GridView1.Rows[i].Cells[1].Text + "\t" + GridView1.Rows[i].Cells[2].Text + "\t" + GridView1.Rows[i].Cells[3].Text + "\t" + GridView1.Rows[i].Cells[4].Text + "\t" + GridView1.Rows[i].Cells[5].Text );}Response.AddHeader("Content-Disposition", "attachment;filename=StockManageSystem_ChuruKuTotal.xls");Response.ContentType = "application/ms-excel";Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");Response.Write(sw);Response.End(); http://blog.csdn.net/am2004/archive/2008/02/04/2083206.aspx if (this.dataGridViewA.RowCount == 0) { MessageBox.Show(" 没有任何记录!"); return; } if (saveFileDialog.ShowDialog() == DialogResult.Cancel) return; Stream myStream0 = saveFileDialog.OpenFile(); StreamWriter sw0 = new StreamWriter(myStream0, System.Text.Encoding.GetEncoding(-0)); try { string column1 = "编号"; string column2 = "时间"; string column3 = "温度"; string column4 = "湿度"; string column5 = "二氧化碳"; sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", column1, column2, column3, column4, column5); if (this.dataGridViewA.Rows.Count > 0) { foreach (DataGridViewRow row in this.dataGridViewA.Rows) { sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", row.Cells[0].Value.ToString(), row.Cells[1].Value.ToString(), row.Cells[2].Value.ToString(), row.Cells[3].Value.ToString(), row.Cells[4].Value.ToString()); } } } catch (IOException e1) { MessageBox.Show("错误代码26:保存记录出错!\n" + e1.Message, "系统错误"); } finally { sw0.Close(); myStream0.Close(); } 参考第6楼, 支持DataGridView和DataTable导入Excel. 直接写Excel文件比较快,用MyXls可以直接生成xls文件,不用安装officepublic static void ExportToXlsFile(DataGridView dataGridView, string path) { XlsDocument doc = new XlsDocument(); Workbook workbook = doc.Workbook; Worksheet worksheet = workbook.Worksheets.Add("sheet1"); DataGridViewColumnCollection columns = dataGridView.Columns; foreach (DataGridViewColumn column in columns) { ushort columnIndex = (ushort)column.DisplayIndex; Cell cell = worksheet.Cells.Add((ushort)1, columnIndex + (ushort)1, column.HeaderText); cell.Font.Bold = true; ColumnInfo info = new ColumnInfo(doc, worksheet) { ColumnIndexStart = columnIndex, ColumnIndexEnd = columnIndex, Width = (ushort)(column.Width * 40), Hidden = !column.Visible }; worksheet.AddColumnInfo(info); } int i = 2; foreach (DataGridViewRow row in dataGridView.Rows) { foreach (DataGridViewCell cell in row.Cells) { object value = cell.FormattedValue; worksheet.Cells.Add(i, cell.OwningColumn.DisplayIndex + 1, value).Font.Height = 160; } i++; } doc.FileName = path; doc.Save(true); } 本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/danjiewu/archive/2009/12/18/5030261.aspx http://topic.csdn.net/u/20090820/11/4fdeec59-f790-4afd-8ee9-519021ce72c3.html?seed=1058181878&r=59211103 紧急求助!很急!关于DLL调用的问题! 怎么结束一个局部变量的System.Timers.Timer? 关于用Marshal类和IntPtr分配非托管内存的问题(急!若帮忙解决,会加分的) C#如何运用按钮添加数据库条目 高手请进,关于EventType clr20r3。。。。。。 网络发送文件的问题在线等待 请问用C#不可以写COM+组件么。可以写、NET组件,COM+组件与、NET组件的不同 怎么查询datatable中指定行列 请教一个DataGrid问题? 在线急切求助!!! 如何让变量成为动态创建的控件名? 一个关于C#的算法不明白
然后将表导入excel中(这个google出一堆)
sw.WriteLine("库存-出入库统计\t仓库编号\t商品编号\t数量\t商品类别\t出入库类型");
for (int i = 0; i < GridView1.Rows.Count; i++)
{
sw.WriteLine(
"\t" + GridView1.Rows[i].Cells[1].Text
+ "\t" + GridView1.Rows[i].Cells[2].Text
+ "\t" + GridView1.Rows[i].Cells[3].Text
+ "\t" + GridView1.Rows[i].Cells[4].Text
+ "\t" + GridView1.Rows[i].Cells[5].Text
);
}
Response.AddHeader("Content-Disposition", "attachment;filename=StockManageSystem_ChuruKuTotal.xls");
Response.ContentType = "application/ms-excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
Response.Write(sw);
Response.End();
{
MessageBox.Show(" 没有任何记录!");
return;
}
if (saveFileDialog.ShowDialog() == DialogResult.Cancel) return;
Stream myStream0 = saveFileDialog.OpenFile();
StreamWriter sw0 = new StreamWriter(myStream0, System.Text.Encoding.GetEncoding(-0));
try
{
string column1 = "编号";
string column2 = "时间";
string column3 = "温度";
string column4 = "湿度";
string column5 = "二氧化碳";
sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", column1, column2, column3, column4, column5);
if (this.dataGridViewA.Rows.Count > 0)
{
foreach (DataGridViewRow row in this.dataGridViewA.Rows)
{
sw0.WriteLine("{0,-10}\t{1,-30}\t{2,-10}\t{3,-10}\t{4,-10}", row.Cells[0].Value.ToString(), row.Cells[1].Value.ToString(), row.Cells[2].Value.ToString(), row.Cells[3].Value.ToString(), row.Cells[4].Value.ToString());
}
}
}
catch (IOException e1)
{
MessageBox.Show("错误代码26:保存记录出错!\n" + e1.Message, "系统错误");
}
finally
{
sw0.Close();
myStream0.Close();
}
{
XlsDocument doc = new XlsDocument();
Workbook workbook = doc.Workbook;
Worksheet worksheet = workbook.Worksheets.Add("sheet1");
DataGridViewColumnCollection columns = dataGridView.Columns;
foreach (DataGridViewColumn column in columns)
{
ushort columnIndex = (ushort)column.DisplayIndex;
Cell cell = worksheet.Cells.Add((ushort)1, columnIndex + (ushort)1, column.HeaderText);
cell.Font.Bold = true;
ColumnInfo info = new ColumnInfo(doc, worksheet)
{
ColumnIndexStart = columnIndex,
ColumnIndexEnd = columnIndex,
Width = (ushort)(column.Width * 40),
Hidden = !column.Visible
};
worksheet.AddColumnInfo(info);
}
int i = 2;
foreach (DataGridViewRow row in dataGridView.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
object value = cell.FormattedValue;
worksheet.Cells.Add(i, cell.OwningColumn.DisplayIndex + 1, value).Font.Height = 160;
}
i++;
}
doc.FileName = path;
doc.Save(true);
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/danjiewu/archive/2009/12/18/5030261.aspx
http://topic.csdn.net/u/20090820/11/4fdeec59-f790-4afd-8ee9-519021ce72c3.html?seed=1058181878&r=59211103