请教大家如何导出 自己指定格式的Excel?

nick207 2010-11-23 11:29:11
通常我们都是在页面上把GridView导出到Excel,格式是固定的,就是第一行是标题,剩下的是数据,

如果我要生成比较复杂的Excel呢?像如下这样的
...全文
184 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
nick207 2010-11-23
  • 打赏
  • 举报
回复
自己顶 期待高人的解答
nick207 2010-11-23
  • 打赏
  • 举报
回复
自己顶 期待高人的解答
hongjiaoli 2010-11-23
  • 打赏
  • 举报
回复
看起来有点难度……
chencan0206 2010-11-23
  • 打赏
  • 举报
回复

string saveFileName = "";
saveFileDialog1.InitialDirectory = Application.StartupPath + "\\";//默认路径为D://
saveFileDialog1.FilterIndex = 1; //默认值为第一个
saveFileDialog1.RestoreDirectory = true; //重新定位保存路径
saveFileDialog1.Title = "导出Excel文件到";
saveFileDialog1.Filter = "xls files (*.xls)|*.xls|xlsx files (*.xlsx)|*.xlsx|All files (*.*)|*.*";
saveFileDialog1.ShowDialog();
saveFileName = saveFileDialog1.FileName;
if (saveFileName.IndexOf(":") < 0)
return;
if (File.Exists(saveFileName))
File.Delete(saveFileName);
Excel.Application xlApp = new Excel.Application();
if (xlApp == null)
{
MessageBox.Show("无法创建Excel对象,可能您的机器未安装Excel");
return;
}

Excel.Workbooks wbooks = xlApp.Workbooks;
Excel.Workbook wbook = wbooks.Add(true);
Excel.Worksheet worksheet = (Excel.Worksheet)wbook.Worksheets[1];
xlApp.Visible = false;
worksheet.Cells[1, 1] = "产品名称";//第一行,第一列
worksheet.Cells[1, 2] = "库存数量";//第一行,第二列
worksheet.Cells[1, 3] = "借出数量";
worksheet.Cells[1, 4] = "库位";
//程序里面产品名称下面有很多产品,所以我这边是一个for循环。你直接改为 worksheet.Cells[a, b]=""
for (int i = 0; i < listView1.Items.Count; i++)
{
for (int j = 0; j <= 2; j++)
{
worksheet.Cells[2 + i, j+1] = listView1.Items[i].SubItems[j].Text;
((Excel.Range)worksheet.Cells[2 + i, j+1]).HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft;
}
}
object missing = System.Reflection.Missing.Value;
try
{
wbook.Saved = true;
wbook.SaveAs(saveFileName, Excel.XlFileFormat.xlXMLSpreadsheet, missing, missing, false, false, Excel.XlSaveAsAccessMode.xlNoChange, missing, missing, missing, missing, missing);
}
catch (Exception e1)
{
MessageBox.Show("导出文件时出错,文件可能正被打开!\n" + e1.Message);
}
finally
{
xlApp.Quit();
System.GC.Collect();
}
MessageBox.Show("导出成功!");

这是我以前写的一个从listview 导出数据到Excel表格的代码。
奔跑吧牛宝宝 2010-11-23
  • 打赏
  • 举报
回复
如果你要按照界面上的效果显示,水晶报表应该能实现。
奔跑吧牛宝宝 2010-11-23
  • 打赏
  • 举报
回复
GridView的显示是从datatable,或者dataset中获取,你要实现的实际上就是从datatable到excel吧

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧