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. CGAL4.4+VC2008编译

    一: CGAL是欧盟资助的基础几何库,很底层, 纯算法, 对于你的项目和科研都是不可多得的好东西, 废话一句, 国内做这样的东西, 估计会活不下去交不了差的. 不多介绍.送上 英文原址, 从软件角度, ...

  2. Xcode 中关于"#"的小知识

    在代码中使用Autolayout时,大家都会使用NSDictionaryOfVariableBindings这个宏,这个宏可以生成一个变量名到变量值映射的Dictionary.比如NSDictiona ...

  3. MyBatis知多少(16)MyBatis映射

    之前我们详细地讨论了MyBatis背后的设计理念以及iBATIS框架是如何产生的.也说明了MyBatis是一个混合型解决方案,它从处理关系数据库的其他不同方法那里借鉴了许多思想.那么MyBatis到底 ...

  4. Unity 动画

    Unity 并没有自带建模工具. 3D建模工具 maya, 3dmax, blender Skinned Mesh Renderer Mesh Renderer Mesh Filter Modelli ...

  5. install keepalived on RedHat/CentOS to provide IP failover for web cluster

    Contents [hide]  1 Introduction 2 Our Sample Setup 3 Install Keepalived 4 Install Kernel Headers 5 C ...

  6. debian系统root用户登录

    Debian默认不允许root登录,所以修改之. 让Debian以root登录 1).首先修改gdm3的设定文件(/etc/gdm3/deamon.conf),在[security]字段后面追加如下一 ...

  7. Xcode 报错信息

    1.CUICatalog: Invalid asset name supplied: 原因是: 使用的方法[UIImage imageNamed:@""]; @"&quo ...

  8. vs.net_2003 下载 虽然是老古董了,但还是很有用的。

    系统要求 支持的操作系统: Windows 2000; Windows NT; Windows Server 2003; Windows XP 以下VS2003的下载链接: http://bcsoft ...

  9. 使用innerHTML获取HTML代码时,HTML标记属性的双引号好多都消失不见了,原来是属性值中包含空格才会保留双引号

    最近搞的一个项目中所使用的方式比较奇怪,用Label显示HTML内容,然后不断地使用JS把Label的innerHTML复制到TextBox中. 但是,昨天发现了一个问题,获取元素值的时候,有时候正常 ...

  10. 字符串与json之间的相互转化

    先在数据库中建表: 再从后台将表取出来,然后转化为json格式,再将其执行ToString()操作后,赋值给前台的隐藏域. 注意引用using Newtonsoft.Json; 前台利用js将隐藏域中 ...