excel导出,求插件

c用s户d昵n称 2014-06-19 03:59:51
正在用vs2012做excel导出功能。但是,自带的com也好,插件npoi也罢,好像都是操作单元格。弱弱问下,有没有类似java中的jxls,只需在Excel模板中定义标签就能使用的。大神,求指点....
...全文
305 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 6 楼 w656xo 的回复:
[quote=引用 5 楼 a01589 的回复:] Aspose.cells就能实现你说的模板导出Excel,只需要定义一个Excel,然后给相应列加上标签直接导出即可
请问,如果给Excel模板中某单元格设置了标签,那该如何通过该插件给这个标签赋值呢?有具体实例可以供参考下吗?谢谢...[/quote]

HttpResponse response = new HttpResponse();
WorkbookDesigner designer = new WorkbookDesigner();
designer.Open(path);//path是模板文件路径
designer.SetDataSource(dt);//dt是你要导出的数据源
designer.Process();
designer.Save("你的文件的名称", SaveType.OpenInExcel, FileFormatType.Excel2007Xlsx, response);
response.Flush();
response.Close();
response.End();
这样就可以导出了,十分简单
c用s户d昵n称 2014-06-23
  • 打赏
  • 举报
回复
引用 7 楼 nitaiyoucala 的回复:
npoi 也可以啊
那在npoi中如何使用标签,有没有具体的实例可供参考下,谢谢...
nitaiyoucala 2014-06-23
  • 打赏
  • 举报
回复
npoi 也可以啊
c用s户d昵n称 2014-06-23
  • 打赏
  • 举报
回复
引用 5 楼 a01589 的回复:
Aspose.cells就能实现你说的模板导出Excel,只需要定义一个Excel,然后给相应列加上标签直接导出即可
请问,如果给Excel模板中某单元格设置了标签,那该如何通过该插件给这个标签赋值呢?有具体实例可以供参考下吗?谢谢...
  • 打赏
  • 举报
回复
Aspose.cells就能实现你说的模板导出Excel,只需要定义一个Excel,然后给相应列加上标签直接导出即可
hyt_2859452494 2014-06-22
  • 打赏
  • 举报
回复
读取多个Excel文件数据到Word文档 private void btn_Read_Click(object sender, EventArgs e) { object missing = System.Reflection.Missing.Value;//获取缺少的object类型值 string[] P_str_Names = txt_Excel.Text.Split(',');//存储所有选择的Excel文件名 object P_obj_Name;//存储遍历到的Excel文件名 Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.Application();//实例化Word对象 if (txt_Word.Text.EndsWith("\\"))//判断路径是否以\结尾 P_obj_WordName = txt_Word.Text + DateTime.Now.ToString("yyyyMMddhhmmss") + ".doc";//记录Word文件路径及名称 else P_obj_WordName = txt_Word.Text + "\\" + DateTime.Now.ToString("yyyyMMddhhmmss") + ".doc";//记录Word文件路径及名称 Microsoft.Office.Interop.Word.Table table;//声明Word表格对象 Microsoft.Office.Interop.Word.Document document = new Microsoft.Office.Interop.Word.Document();//声明Word文档对象 document = word.Documents.Add(ref missing, ref missing, ref missing, ref missing);//新建Word文档 Microsoft.Office.Interop.Word.Range range ;//声明范围对象 int P_int_Rows = 0, P_int_Columns = 0;//存储工作表中数据的行数和列数 object P_obj_start = 0, P_obj_end = 0;//分别记录创建表格的开始和结束范围 object P_obj_Range = Microsoft.Office.Interop.Word.WdCollapseDirection.wdCollapseEnd;//定义要合并的范围位置 for (int i = 0; i < P_str_Names.Length - 1; i++)//遍历所有选择的Excel文件名 { P_obj_Name = P_str_Names[i];//记录遍历到的Excel文件名 List<string> P_list_SheetName = CBoxBind(P_obj_Name.ToString());//获取指定Excel中的所有工作表 for (int j = 0; j < P_list_SheetName.Count; j++)//遍历所有工作表 { range = document.Range(ref missing, ref missing);//获取Word范围 range.InsertAfter(P_obj_Name + "——" + P_list_SheetName[j] + "工作表");//插入文本 range.Font.Name = "宋体";//设置字体 range.Font.Size = 10;//设置字体大小 DataSet myds = CBoxShowCount(P_obj_Name.ToString(), P_list_SheetName[j]);//获取工作表中的所有数据 P_int_Rows = myds.Tables[0].Rows.Count;//记录工作表的行数 P_int_Columns = myds.Tables[0].Columns.Count;//记录工作表的列数 range.Collapse(ref P_obj_Range);//合并范围 if (P_int_Rows > 0 && P_int_Columns > 0)//判断如果工作表中有记录 { //在指定范围处添加一个指定行数和列数的表格 table = range.Tables.Add(range, P_int_Rows, P_int_Columns, ref missing, ref missing); for (int r = 0; r < P_int_Rows; r++)//遍历行 { for (int c = 0; c < P_int_Columns; c++)//遍历列 { table.Cell(r + 1, c + 1).Range.InsertAfter(myds.Tables[0].Rows[r][c].ToString());//将遍历到的数据添加到Word表格中 } } } object P_obj_Format = Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatDocument;//定义Word文档的保存格式 word.DisplayAlerts = Microsoft.Office.Interop.Word.WdAlertLevel.wdAlertsNone;//设置保存时不显示对话框 //保存Word文档 document.SaveAs(ref P_obj_WordName, ref P_obj_Format, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing); } } document.Close(ref missing, ref missing, ref missing);//关闭Word文档 word.Quit(ref missing, ref missing, ref missing);//退出Word应用程序 MessageBox.Show("已经成功将多个Excel文件的内容读取到了一个Word文档中!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } private void btn_Browse_Click(object sender, EventArgs e) { System.Diagnostics.Process.Start(P_obj_WordName.ToString());//打开生成的Word文件 } //获取指定Excel中的所有工作表 private List<string> CBoxBind(string P_str_Excel) { List<string> P_list_SheetName = new List<string>();//实例化泛型集合对象 //连接Excel数据库 OleDbConnection olecon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + P_str_Excel + ";Extended Properties=Excel 8.0"); olecon.Open();//打开数据库连接 System.Data.DataTable DTable = olecon.GetSchema("Tables");//实例化表对象 DataTableReader DTReader = new DataTableReader(DTable);//实例化表读取对象 while (DTReader.Read())//循环读取 { string P_str_Name = DTReader["Table_Name"].ToString().Replace('$', ' ').Trim();//记录工作表名称 if (!P_list_SheetName.Contains(P_str_Name))//判断泛型集合中是否已经存在该工作表名称 { P_list_SheetName.Add(P_str_Name);//将工作表名添加到泛型集合中 } } DTable = null;//清空表对象 DTReader = null;//清空表读取对象 olecon.Close();//关闭数据库连接 return P_list_SheetName;//返回泛型集合 }//CodeGo.net/ //获取Excel工作表中的数据 private DataSet CBoxShowCount(string P_str_Excel,string P_str_Name) { //连接Excel数据库 OleDbConnection olecon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + P_str_Excel + ";Extended Properties=Excel 8.0"); OleDbDataAdapter oledbda = new OleDbDataAdapter("select * from [" + P_str_Name + "$]", olecon);//从工作表中查询数据 DataSet myds = new DataSet();//实例化数据集对象 oledbda.Fill(myds);//填充数据集 return myds;//返回数据集 } }
yzf86211861 2014-06-20
  • 打赏
  • 举报
回复
aspose.cells 我感觉这是我用的最好的一款操作EXCEL的插件了,强力推荐。
EdsionWang 2014-06-19
  • 打赏
  • 举报
回复
http://blog.csdn.net/zzq900503/article/details/8808659 作者总结了三种方式。

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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