NPOI操作Excel 004:写入空Excel(添加保存提示框)

前文说道写入excel的样例,当中保存Excle后须要添加提示框。让用户自己选择保存路径,做改动例如以下。

引用的dll等前面已经说过了,

直接看代码:

        protected void Btn_WriteExcel(object sender, EventArgs e)
        {
            //要保存的内容,此处用代码生成的内容。而在实际中能够是数据库读取的,
            //亦或是页面输入的内容

            DataTable dt = new DataTable();

            dt.Columns.Add("序号");

            dt.Columns.Add("姓名");

            dt.Columns.Add("年龄");

            dt.Columns.Add("职位");

            for (int i = 0; i < 5; i++)
            {
                DataRow row = dt.NewRow();

                row["序号"] = i + 1;

                row["姓名"] = "Test"+i ;

                row["年龄"] = 25 + i;

                row["职位"] = i % 2 == 0 ? "project师" : "经理";

                dt.Rows.Add(row);
            }
            //为了更好的看怎样使用NPOI。此处显示两行标题。
            //显示标题能够看怎样合并单元格
            string mainTitle = "主标题";

            string secondTitle = "副标题";

            //保存的Excel路径,文件名称用guid生成
            string fileIndex = HttpRuntime.AppDomainAppPath.ToString();

            string tempExcel = fileIndex + @"\ExcelFile\{0}.xls";

            tempExcel = string.Format(tempExcel, System.Guid.NewGuid());

            int rowIndex = 0;

            //操作Excel的几个主要对象,此处声明
            HSSFWorkbook workbook = new HSSFWorkbook();

            HSSFSheet sheet = workbook.CreateSheet();

            //row0和row1是两行标题
            HSSFRow row0 = sheet.CreateRow(rowIndex);

            HSSFCell cell0 = row0.CreateCell(0);

            cell0.SetCellValue(mainTitle);

            HSSFCellStyle style = workbook.CreateCellStyle();

            style.Alignment = CellHorizontalAlignment.CENTER;

            HSSFFont font = workbook.CreateFont();

            font.Boldweight = short.MaxValue;

            style.SetFont(font);

            cell0.CellStyle = style;

            //此处合并单元格
            sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex, rowIndex, 0, 5));

            rowIndex++;

            HSSFRow row1 = sheet.CreateRow(rowIndex);

            HSSFCell cell1 = row1.CreateCell(0);

            cell1.SetCellValue(secondTitle);

            cell1.CellStyle = style;

            sheet.AddMergedRegion(new NPOI.HSSF.Util.CellRangeAddress(rowIndex, rowIndex, 0, 5));

            //由于列名已经指定,占一行
            rowIndex++;

            //这一行显示表头
            HSSFRow row2 = sheet.CreateRow(rowIndex);

            int row2cellIndex = 0;

            foreach (DataColumn col in dt.Columns)
            {
                HSSFCell cell = row2.CreateCell(row2cellIndex);

                cell.SetCellValue(col.ColumnName.ToString());

                row2cellIndex++;
            }

            rowIndex++;

            //datatable的内容
            for(int i= 0;i< dt.Rows.Count;i++)
            {
                HSSFRow row = sheet.CreateRow(rowIndex);

                foreach (DataColumn col in dt.Columns)
                {
                    row.CreateCell(col.Ordinal).SetCellValue(dt.Rows[i][col].ToString());

                }

                rowIndex++;
            }

            //使用文件流保存
            MemoryStream ms = new MemoryStream();

            workbook.Write(ms);

            ms.Flush();

            ms.Position = 0;

            workbook = null;

            sheet = null;

            using (FileStream fs = new FileStream(tempExcel, FileMode.Create, FileAccess.ReadWrite))
            {
                ms.WriteTo(fs);
            }

            Response.Clear();
            Response.ClearHeaders();
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("Content-Disposition", "attachent;filename=" + HttpUtility.UrlDecode(@"TestExcel.xls"));//TestExcel.xls可改动
            Response.WriteFile(tempExcel, true);
            Response.Flush();
            Response.Close();

            if (File.Exists(tempExcel))
            {
                File.Delete(tempExcel);
            }

            Response.End();

            ms.Close();
        }

添加的是这段代码:

            Response.Clear();
            Response.ClearHeaders();
            Response.ContentType = "application/octet-stream";
            Response.AddHeader("Content-Disposition", "attachent;filename=" + HttpUtility.UrlDecode(@"TestExcel.xls"));//TestExcel.xls可改动
            Response.WriteFile(tempExcel, true);
            Response.Flush();
            Response.Close();

可实如今网页中弹出提示框保存文件。
project下载:http://download.csdn.net/detail/yysyangyangyangshan/9037569

时间: 2024-10-07 20:17:41

NPOI操作Excel 004:写入空Excel(添加保存提示框)的相关文章

MFC中添加ToolTip提示框

PART 1 MFC 对话框中的 Buttton添加提示 例如我们想在一个对话框中的一个button控件添加tooltip,实现的方法如下: 1. 在该对话框的类中添加一个CToolTipCtrl类型成员,并在适当的地方将其初始化如下: m_ToolTipCtrl.Create(this); m_ToolTipCtrl.AddTool(GetDlgItem(IDC_BUTTON1), _T("This is ToolTip")); m_ToolTipCtrl.SetMaxTipWidt

Arc Engine 中添加气泡提示框

一.在ArcMap中的定位操作 已知若干点的经纬度坐标,要求在地图中进行定位: 1.通过Tool >Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系: 2.定位后的点不能执行查询.分析等操作,需要重新export data: 3.导出的数据最好转换成投影坐标,以便于计算.可首先把已知投影坐标的图层加载到地图中,然后加入第二步产生的点图层,然后将点图层export data,注意坐标系统选择“the data frame” 二.在ArcObject开发时定位的代码示例

NPOI操作Excel 003:写入空Excel

对于NPOI操作Excel前面已经有了简单认识(http://blog.csdn.net/yysyangyangyangshan/article/details/42614209).继续来看如何将内容保存至Excel中.根据前面的经验NPOI操作Excel主要的几个对象分别是:workbook,sheet以及sheet内的row和cell.所以保存至Excel也是对这几个对象进行操作.当然我们平时使用Excel时不光要在单元格中保存内容,还要设置单元格的格式以及字体大小等,也就是格式和样式.这些

C#用NPOI操作读写2007版的excel所走的弯路

C#用NPOI操作读写类网上很多了,在此不重复. 我引用的dll:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll, 一样的代码操作2003版的excel没有问题,在操作2007版的excel时出现莫名其妙的问题,而且catch不到异常信息. 解决方法:需引用ICSharpCode.SharpZipLib.dll. So需要引用的dll,有四个:NPOI.dll,NPOI.OOXML.dll,NPOI.OpenXml4Net.dll,ICSharpCode

NPOI操作Excel 005:写入空Excel(Winform版)

前文写了一个BS版本号的导出Excel的样例(http://blog.csdn.net/yysyangyangyangshan/article/details/47904119).对于CS版在保存的地方有少许修改.直接看代码例如以下: private void button1_Click(object sender, EventArgs e) { //要保存的内容.此处用代码生成的内容,而在实际中能够是数据库读取的, //亦或是页面输入的内容 DataTable dt = new DataTab

长按power键弹出关机菜单,点击关机会弹出提示框,点击重启没有提示框确认直接进入重启状态,添加确认提示框

--- a/idh.code/frameworks/base/core/res/res/values-es/strings.xml +++ b/idh.code/frameworks/base/core/res/res/values-es/strings.xml @@ -1710,5 +1710,5 @@ <string name="station_state_connected">"Stación %1$s esta conectada"</st

jexcel+struts2实现上传下载,,即模型数据导出为Excel格式和上传Excel格式的文件

3.将数据查询出来,自己先定义好表头的列数及表头名,将将每个对象的属性转换为一个String[],然后将所有转换成的String[]存入到List<String[]>中,并通过jexcel对表头String[]和list<String[]>进行循环遍历,将每个子字符串转换成Excel中的一个单元格,并写出到输出流中,最后再将该输出流转换为输入流返回到download视图中,最后在访问页面时就会以下载的方法呈现.download视图由struts.xml中配置各项参数.,该downl

Npoi操作excel

转载地址:http://www.cnblogs.com/knowledgesea/archive/2012/11/16/2772547.html Npoi操作excel Npoi 简介 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.Npoi 下载地址:http://npoi.codeplex.com/releases/view/38113 3.Npoi 学习系列教程推荐:http://www.cnblogs.co

C#开发中使用Npoi操作excel实例代码

C#开发中使用Npoi操作excel实例代码 出处:西西整理 作者:西西 日期:2012/11/16 9:35:50 [大 中 小] 评论: 0 | 我要发表看法 Npoi 是什么? 1.整个Excel表格叫做工作表:WorkBook(工作薄),包含的叫页(工作表):Sheet:行:Row:单元格Cell. 2.Npoi 下载地址:http://npoi.codeplex.com/releases/view/38113 3.Npoi 学习系列教程推荐:http://www.cnblogs.com