protected void btn_Export_Click(object sender, EventArgs e)
{
List<BNXX_SJXJ_XJSJ> list = ViewState["data"] as List<BNXX_SJXJ_XJSJ>; string[] AppPaths = HttpRuntime.AppDomainAppPath.ToString().Split('\\');
string PicPath = string.Empty;
for (int i = ; i < AppPaths.Length - ; i++)
{
PicPath = PicPath + "/" + AppPaths[i];
}
PicPath = PicPath.Substring() + "/mytest/Photos";
///调用模板,先保存,后下载
string path = Server.MapPath("../../template/SJingSJ.xls");
using (FileStream fs = File.OpenRead(path))
{
using (Workbook wk = new HSSFWorkbook(fs))
{
int pictureIndex1 = AddPictureToWorkbook(list[].XQSY, PicPath, wk);
int pictureIndex2 = AddPictureToWorkbook(list[].XZSY, PicPath, wk);
int pictureIndex3 = AddPictureToWorkbook(list[].XHSY, PicPath, wk); using (Sheet sheet = wk.GetSheetAt())
{
sheet.GetRow().GetCell().SetCellValue(list[].JH);
sheet.GetRow().GetCell().SetCellValue(list[].FZR);
sheet.GetRow().GetCell().SetCellValue(list[].XJRQ);
sheet.GetRow().GetCell().SetCellValue(list[].GCZSQDYL1);
sheet.GetRow().GetCell().SetCellValue(list[].GCZSQDYL2);
sheet.GetRow().GetCell().SetCellValue(list[].GCZSQDYL3);
sheet.GetRow().GetCell().SetCellValue(list[].GY);
sheet.GetRow().GetCell().SetCellValue(list[].YY);
sheet.GetRow().GetCell().SetCellValue(list[].PZ);
sheet.GetRow().GetCell().SetCellValue(list[].SZ);
sheet.GetRow().GetCell().SetCellValue(list[].XJYYJMB);
sheet.GetRow().GetCell().SetCellValue(list[].LC);
sheet.GetRow().GetCell().SetCellValue(list[].XJYB);
sheet.GetRow().GetCell().SetCellValue(list[].JYGX);
sheet.GetRow().GetCell().SetCellValue(list[].XQ);
sheet.GetRow().GetCell().SetCellValue(list[].GCXJ); sheet.GetRow().GetCell().SetCellValue(list[].YXJSJ);
sheet.GetRow().GetCell().SetCellValue(list[].YXJYL);
sheet.GetRow().GetCell().SetCellValue(list[].YXJPL); sheet.GetRow().GetCell().SetCellValue(list[].EXJSJ);
sheet.GetRow().GetCell().SetCellValue(list[].EXJYL);
sheet.GetRow().GetCell().SetCellValue(list[].EXJPL); sheet.GetRow().GetCell().SetCellValue(list[].SXJSJ);
sheet.GetRow().GetCell().SetCellValue(list[].SXJYL);
sheet.GetRow().GetCell().SetCellValue(list[].SXJPL); sheet.GetRow().GetCell().SetCellValue(list[].YXJSJ2);
sheet.GetRow().GetCell().SetCellValue(list[].YXJYL2);
sheet.GetRow().GetCell().SetCellValue(list[].YJKPL);
sheet.GetRow().GetCell().SetCellValue(list[].YCKPL); sheet.GetRow().GetCell().SetCellValue(list[].EXJSJ2);
sheet.GetRow().GetCell().SetCellValue(list[].EXJYL2);
sheet.GetRow().GetCell().SetCellValue(list[].EJKPL);
sheet.GetRow().GetCell().SetCellValue(list[].ECKPL); sheet.GetRow().GetCell().SetCellValue(list[].SXJSJ2);
sheet.GetRow().GetCell().SetCellValue(list[].SXJYL2);
sheet.GetRow().GetCell().SetCellValue(list[].SJKPL);
sheet.GetRow().GetCell().SetCellValue(list[].SCKPL); sheet.GetRow().GetCell().SetCellValue(list[].XJCH);
sheet.GetRow().GetCell().SetCellValue(list[].XJXG); sheet.GetRow().GetCell().SetCellValue(list[].XQSYSJ);
sheet.GetRow().GetCell().SetCellValue(list[].XZSYSJ);
sheet.GetRow().GetCell().SetCellValue(list[].XHSYSJ); InsertPictureToSheet(sheet, pictureIndex1, , , , );
InsertPictureToSheet(sheet, pictureIndex2, , , , );
InsertPictureToSheet(sheet, pictureIndex3, , , , ); //AddPictureToExecl(list[0].XQSY, PicPath, wk, sheet, 2, 24, 4, 24);
//AddPictureToExecl(list[0].XZSY, PicPath, wk, sheet, 5, 24, 11, 24);
//AddPictureToExecl(list[0].XHSY, PicPath, wk, sheet, 12, 24, 16, 24);
string outputPath = Server.MapPath("../../OutPut/注水井洗井设计报表.xls");
using (FileStream files = new FileStream(outputPath, FileMode.Create))
{
wk.Write(files);
} Response.Clear();
Response.Buffer = true;
Response.Charset = "utf-8";
Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode("注水井洗井设计报表", System.Text.Encoding.UTF8) + ".xls");
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); //设置输出流为简体中文
Response.ContentType = "application/ms-execl"; //设置输出文件类型为excel文件。
Response.WriteFile(outputPath);
Response.End();
}
}
}
}
 //2, 24, 4, 24
private int AddPictureToWorkbook(string picName, string PicPath, Workbook wk)
{
bool isExists = true;
if (!string.IsNullOrEmpty(picName))
{
PicPath = PicPath + "/" + picName;
isExists = Directory.Exists(PicPath);
}
else
{
isExists = false;
}
if (!isExists)
{
PicPath = Server.MapPath("../../Images/Button/Defalut .jpg");
}
byte[] bytes = System.IO.File.ReadAllBytes(PicPath);
int pictureIdx = wk.AddPicture(bytes, PictureType.JPEG);
return pictureIdx;
}
private void InsertPictureToSheet(Sheet sheet, int pictureIdx, int StartX, int StartY, int EndX, int EndY)
{
Drawing patriarch = sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(, , , , StartX, StartY, EndX, EndY);
Picture pict = patriarch.CreatePicture(anchor, pictureIdx);
pict.Resize();
}

使用NPOI将多张图片导入execl的更多相关文章

  1. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续3篇-导出时动态生成多Sheet EXCEL)

    ExcelUtility 类库经过我(梦在旅途)近期不断的优化与新增功能,现已基本趋向稳定,功能上也基本可以满足绝大部份的EXCEL导出需求,该类库已在我们公司大型ERP系统全面使用,效果不错,今天应 ...

  2. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)

    自ExcelUtility类推出以来,经过项目中的实际使用与不断完善,现在又做了许多的优化并增加了许多的功能,本篇不再讲述原理,直接贴出示例代码以及相关的模板.结果图,以便大家快速掌握,另外这些示例说 ...

  3. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续篇)

    上周六我发表的文章<分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility>受到了大家的热烈支持与推荐,再此表示感谢,该ExcelUtility ...

  4. navicat 导入execl失败

    在使用navicat导入execl是遇到了如下图的错误 在更换多个版本的navicat后问题依然如故. 解决办法; 1.打开需要导入的execl 2.安装一个AccessDatabaseEngine_ ...

  5. 如何轻松的把图片导入execl表格中

    在项目中有时候会遇到往数据库中导数据的时候,往往需要把图片也一起导入execl表格中,那怎么才能把图片一块导入至execl中呢?那么今天我们就来看看怎么实现吧! 如何实现?今天我们就来用jxl和poi ...

  6. 基于EPPlus和NPOI实现的Excel导入导出

    基于EPPlus和NPOI实现的Excel导入导出 CollapseNav.Net.Tool.Excel(NuGet地址) 太长不看 导入 excel 文件流将会转为 ExcelTestDto 类型的 ...

  7. fileupload NPOI导入EXECL数据

    fileupload JS @section scripts{ <script src="~/Content/js/fileupload/vendor/jquery.ui.widget ...

  8. 基于NPOI的Excel数据导入

    从Excel导入数据最令人头疼的是数据格式的兼容性,特别是日期类型的兼容性.为了能够无脑导入日期,折腾了一天的NPOI.在经过测试确实可以导入任意格式的合法日期后,写下这篇小文,与大家共享.完整代码请 ...

  9. 分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility

    1. ExcelUtility功能:  1.将数据导出到EXCEL(支持XLS,XLSX,支持多种类型模板,支持列宽自适应)  类名:ExcelUtility. Export  2.将EXCEL ...

随机推荐

  1. 【eoe 6】ActionBar的使用

    一. Action Bar 一般位于屏幕顶部,包括四个可操作区域: 应用图标或LOGO区域,用于视图控制的Spinner下拉菜单或TAB控件区域, Action button(也称为Action It ...

  2. 界面排版-TableLayout的stretchColumns方法

    1.先把XML內的預設RelativeLayout排版方式清空,在去Layout區拉一個TableLayout的到表單上,XML下會出現下面程式碼       <TableLayout xmln ...

  3. Fire!(BFS)

    Fire! Time Limit:1000MS     Memory Limit:0KB     64bit IO Format:%lld & %llu Submit Status Descr ...

  4. ruby -- 基础学习(五)empty、nil、blank三者之间的区别

    这三个方法在ROR中经常用到,都是用来判断是否为空的. 区别是: ruby的方法:.nil?..empty? rails的方法 :.blank? 用法的区别: .nil?    :   判断对象是否存 ...

  5. 伸展树(一)之 图文解析 和 C语言的实现

    概要 本章介绍伸展树.它和"二叉查找树"和"AVL树"一样,都是特殊的二叉树.在了解了"二叉查找树"和"AVL树"之后, ...

  6. 数据可视化(5)--jqplot经典实例

    本来想把实例也写到上篇博客里,最后发现太长了,拆成两篇博客了. 实例来源于官方文档:http://www.jqplot.com/tests/ 这篇博客主要是翻译了官方文档关于经典实例的解说,并在相应代 ...

  7. [OpenCV] Feature Extraction

    特征检测 特征描述 特征匹配 特征跟踪 “不读白不读,读了还想读” 的一本基础书 低层次特征提取 阈值方法 1. 边缘检测 一阶检测算子 二阶检测算子 相位一致性(频域) 2. 角点检测(局部特征提取 ...

  8. Android 学习笔记 Service

    PS:前几篇的内容光是上代码了,也没有细细的讲解..感觉这样写很不好..因此还是多一些讲解吧... 学习内容: 1.了解Service... 2.Service的启动与停止.. 3.绑定与取消绑定Se ...

  9. Java工程师面试题,整理自网络与博主各种笔试面试,持续更新

    1.面向对象的特征有哪些方面? 封装:通常认为封装是把数据和操作数据的方法绑定起来,对数据的访问只能通过已定义的接口. 多态性:多态性是指允许不同子类型的对象对同一消息作出不同的响应.简单的说就是用同 ...

  10. 如何用参数化SQL语句污染你的计划缓存

    你的SQL语句的参数化总是个好想法.使用参数化SQL语句你不会污染你的计划缓存——错!!!在这篇文章里我想向你展示下用参数化SQL语句就可以污染你的计划缓存,这是非常简单的! ADO.NET-AddW ...