利用NPOI 导出文件到Excel (导出合同)
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using VO;
using DAL;
using BLL;
using System.IO;
using System.Text;
using NPOI;
using NPOI.HPSF;
using NPOI.HSSF;
using NPOI.HSSF.UserModel;
using NPOI.HSSF.Util;
using NPOI.POIFS;
using NPOI.Util;
using NPOI.POIFS.FileSystem;
using System.Collections.Generic;
public partial class HT_HTSKMessage : System.Web.UI.Page
{
public static IList<Tb_HTMXInfo> list = new List<Tb_HTMXInfo>();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
datebinss();
}
}
//生成Excel
protected void btntoExcel_Click(object sender, EventArgs e)
{
try
{
Tb_HTInfo info = new Tb_HTInfo();
info.Ht_id = Convert.ToInt32(lblhtid.Text);
info = new Tb_HTHelper().FindSelf(info);
string fileName = HttpUtility.UrlDecode(info.Ht_HTName+".xls");
Response.ContentType = "application/x-excel";
Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
HSSFWorkbook hssfWorkBook = new HSSFWorkbook();//1、创建一个文件对象
HSSFSheet sheet1 = hssfWorkBook.CreateSheet("合同正文");//2、创建一个工作薄
HSSFSheet sheet2 = hssfWorkBook.CreateSheet("合同附件");
HSSFSheet sheet3 = hssfWorkBook.CreateSheet("sheet1");
sheet1.SetColumnWidth(2, 26 * 256);//设置指定列的宽度
sheet1.SetColumnWidth(4, 24 * 256);
sheet1.SetColumnWidth(5, 15 * 256);
HSSFRow row = sheet1.CreateRow(0);//建行
HSSFCell cell = row.CreateCell(0);//建单元格
cell.SetCellValue(info.Ht_HTName);//合同名称
//单元格对齐方式
HSSFCellStyle style = hssfWorkBook.CreateCellStyle();
style.Alignment = HSSFCellStyle.ALIGN_CENTER;
//文本样式
HSSFFont font = hssfWorkBook.CreateFont();
font.FontHeight = 18 * 18;
style.SetFont(font);
cell.CellStyle = style;
//合并单元格
sheet1.AddMergedRegion(new Region(0, 0, 0, 5));
HSSFRow row1 = sheet1.CreateRow(1);
HSSFCell cell2 = row1.CreateCell(4);
cell2.SetCellValue("合同号:" + info.Ht_HTnumber);
HSSFCellStyle style1 = hssfWorkBook.CreateCellStyle();
HSSFFont font1 = hssfWorkBook.CreateFont();
font1.Color = HSSFColor.RED.index;//设置单元格字体颜色
font1.FontHeightInPoints = 12;//设置单元格字体大小
style1.SetFont(font1);
cell2.CellStyle = style1;
sheet1.AddMergedRegion(new Region(1, 4, 1, 5));
sheet1.CreateRow(2).CreateCell(0).SetCellValue("甲方:");
sheet1.CreateRow(2).CreateCell(1).SetCellValue("名称:");
sheet1.CreateRow(2).CreateCell(2).SetCellValue(info.Ht_MaiF1);
sheet1.CreateRow(3).CreateCell(1).SetCellValue("地址:");
sheet1.CreateRow(3).CreateCell(2).SetCellValue("");
sheet1.AddMergedRegion(new Region(3, 2, 3, 4));
sheet1.CreateRow(4).CreateCell(1).SetCellValue("电话:");
sheet1.CreateRow(4).CreateCell(2).SetCellValue(info.Ht_MF1Contact);
sheet1.CreateRow(4).CreateCell(3).SetCellValue("传真:");
sheet1.CreateRow(4).CreateCell(4).SetCellValue("");
sheet1.CreateRow(5).CreateCell(0).SetCellValue("乙方:");
sheet1.CreateRow(5).CreateCell(1).SetCellValue("名称:");
sheet1.CreateRow(5).CreateCell(2).SetCellValue(info.Ht_MaiF2);
sheet1.CreateRow(6).CreateCell(1).SetCellValue("地址:");
sheet1.CreateRow(6).CreateCell(2).SetCellValue("");
sheet1.AddMergedRegion(new Region(6, 2, 6, 3));
sheet1.CreateRow(7).CreateCell(1).SetCellValue("电话:");
sheet1.CreateRow(7).CreateCell(2).SetCellValue(info.Ht_MF2Contact);
sheet1.CreateRow(7).CreateCell(3).SetCellValue("传真:");
sheet1.CreateRow(7).CreateCell(4).SetCellValue("");
sheet1.CreateRow(8).CreateCell(1).SetCellValue("开户行:");
sheet1.CreateRow(8).CreateCell(3).SetCellValue("账号:");
#region
sheet1.CreateRow(9).CreateCell(1).SetCellValue("甲乙协商一致,就甲方向乙方购买网络产品事宜达成如下协议:");
sheet1.CreateRow(10).CreateCell(1).SetCellValue("一、产品名称、型号、数量、价格见《合同附件——购货清单》。");
sheet1.CreateRow(11).CreateCell(1).SetCellValue("二、本合同总金额(大写) 人民币:");
sheet1.CreateRow(11).CreateCell(3).SetCellValue(MoneyToString.GetCnString(info.Ht_HTmoney.ToString()));
sheet1.AddMergedRegion(new Region(11, 1, 11, 2));
sheet1.AddMergedRegion(new Region(11, 3, 11, 4));
sheet1.CreateRow(12).CreateCell(1).SetCellValue("三、交货时间、地点、方式:甲乙双方初定交货时间为合同签订后三个工作日内,乙方在此日");
sheet1.CreateRow(13).CreateCell(1).SetCellValue("期前将货物运送至甲方指定地(详见附件)。乙方应当在2个工作日内将实际交货时间通知甲");
sheet1.CreateRow(14).CreateCell(1).SetCellValue("方,如实际交货时间与初定交货时间有差异的,以实际交货时间为准。");
sheet1.CreateRow(15).CreateCell(1).SetCellValue("四、运输方式及费用负担:由乙方代办托运并承担相关运输费用");
sheet1.CreateRow(16).CreateCell(1).SetCellValue("五、产品包装:以厂家包装为准;如需特殊包装见附件。");
sheet1.CreateRow(17).CreateCell(1).SetCellValue("六、验收标准、方法及提出异议期限:");
sheet1.CreateRow(18).CreateCell(1).SetCellValue("七、 质量异议:甲方对产品的质量异议应自收到产品之日起3天内书面提出,逾期视为无质量");
sheet1.CreateRow(19).CreateCell(1).SetCellValue("异议。乙方对产品提供的保修服务内容见本合同第一条。");
sheet1.CreateRow(20).CreateCell(1).SetCellValue("八、结算方式及期限:");
sheet1.CreateRow(21).CreateCell(1).SetCellValue(" 货到后30天内将全额货款以电汇方式付清。甲方付款前乙方需提供相应金额增值税发票。");
sheet1.CreateRow(22).CreateCell(1).SetCellValue("九、发票形式:17%增值税专用发票。");
sheet1.CreateRow(23).CreateCell(1).SetCellValue("十、产品的保修期及售后服务:");
sheet1.CreateRow(24).CreateCell(1).SetCellValue(" 1、 产品的售后质保服务由厂家负责。");
sheet1.CreateRow(25).CreateCell(1).SetCellValue(" 2、 出现的质量问题,乙方应积极协助联系厂家解决,具体事宜双方协商。");
sheet1.CreateRow(26).CreateCell(1).SetCellValue("十一、保密条款:甲乙双方对本合同的价格有保密义务,未经同意不得向第三方公开,");
sheet1.CreateRow(27).CreateCell(1).SetCellValue("否则视为违约");
sheet1.CreateRow(28).CreateCell(1).SetCellValue("十二、违约责任:");
sheet1.CreateRow(29).CreateCell(1).SetCellValue(" 1、所提交的产品与合同约定不符的,乙方应承担相应赔偿责任。");
sheet1.CreateRow(30).CreateCell(1).SetCellValue(" 2、乙方应按时交货,甲方应如期付款。如逾期付款或交货,应按合同违约金额的5%支付");
sheet1.CreateRow(31).CreateCell(1).SetCellValue("违约金,并按逾期金额的每天万分之三支付逾期利息。双方对违约责任的承担仅限于本合同。");
sheet1.CreateRow(32).CreateCell(1).SetCellValue(" 3、甲方拒绝收货的,甲方应赔偿因此而给乙方造成的直接损失。");
sheet1.CreateRow(33).CreateCell(1).SetCellValue("十三、不可抗力:一方因不可抗力不能履行或不能完全履行合同时,应当及时告知对方事");
sheet1.CreateRow(34).CreateCell(1).SetCellValue("由,并在合理期限内由当地政府部门提供相关证明,双方据实重新协商合同履行事项。");
sheet1.CreateRow(35).CreateCell(1).SetCellValue("十四、纠纷解决:本合同在履行过程中发生争议,由当事人双方协商解决。协商不成,任何");
sheet1.CreateRow(36).CreateCell(1).SetCellValue("一方有权向其所在地有管辖权的人民法院提起诉讼。");
sheet1.CreateRow(37).CreateCell(1).SetCellValue("十五、 本合同经双方签名盖章后生效,一式二份,双方各执一份,传真件具同等法律效力。");
sheet1.CreateRow(38).CreateCell(1).SetCellValue("甲方:");
sheet1.CreateRow(38).CreateCell(2).SetCellValue(info.Ht_MaiF1);
sheet1.CreateRow(38).CreateCell(3).SetCellValue("乙方:");
sheet1.CreateRow(38).CreateCell(4).SetCellValue(info.Ht_MaiF2);
sheet1.CreateRow(39).CreateCell(1).SetCellValue("");
sheet1.CreateRow(40).CreateCell(1).SetCellValue("代表:");
sheet1.CreateRow(40).CreateCell(2).SetCellValue(info.Ht_MaiF1Man);
sheet1.CreateRow(40).CreateCell(3).SetCellValue("代表:");
sheet1.CreateRow(40).CreateCell(4).SetCellValue(info.Ht_MaiF2Man);
sheet1.CreateRow(41).CreateCell(1).SetCellValue("");
sheet1.CreateRow(42).CreateCell(1).SetCellValue("日期:");
sheet1.CreateRow(42).CreateCell(2).SetCellValue(info.Ht_QDTime.Year + "年" + info.Ht_QDTime.Month + "月" + info.Ht_QDTime.Day + "日");
sheet1.CreateRow(42).CreateCell(3).SetCellValue("日期:");
sheet1.CreateRow(42).CreateCell(4).SetCellValue(info.Ht_QDTime.Year + "年" + info.Ht_QDTime.Month + "月" + info.Ht_QDTime.Day + "日");
#endregion
sheet2.SetColumnWidth(0, 5 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(1, 13 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(2, 19 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(3, 12 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(4, 7 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(5, 10 * 256);//设置指定列的宽度
sheet2.SetColumnWidth(6, 10 * 256);//设置指定列的宽度
sheet2.DefaultRowHeight = 30 * 20;//设置默认行高
HSSFRow s2_row = sheet2.CreateRow(0);//建行
HSSFCell s2_cell = s2_row.CreateCell(0);//建单元格
s2_cell.SetCellValue("合同附件1");//标题
//单元格对齐方式
HSSFCellStyle s2_style = hssfWorkBook.CreateCellStyle();
s2_style.Alignment = HSSFCellStyle.ALIGN_CENTER;
//文本样式
HSSFFont s2_font = hssfWorkBook.CreateFont();
s2_font.FontHeight = 18 * 18;
s2_style.SetFont(font);
s2_cell.CellStyle = s2_style;
//合并单元格
sheet2.AddMergedRegion(new Region(0, 0, 0, 7));
sheet2.CreateRow(1).CreateCell(0).SetCellValue("一、购货清单");
sheet2.CreateRow(1).CreateCell(5).SetCellValue("合同编号:" + info.Ht_HTnumber);
sheet2.AddMergedRegion(new Region(1, 0, 1, 1));//行、列、行、列
sheet2.AddMergedRegion(new Region(1, 4, 1, 7));
sheet2.AddMergedRegion(new Region(2, 0, 2, 7));
sheet2.CreateRow(3).CreateCell(0).SetCellValue("序");
sheet2.CreateRow(3).CreateCell(1).SetCellValue("产品名称");
sheet2.CreateRow(3).CreateCell(2).SetCellValue("产品型号");
sheet2.CreateRow(3).CreateCell(3).SetCellValue("产品编码");
sheet2.CreateRow(3).CreateCell(4).SetCellValue("数量");
sheet2.CreateRow(3).CreateCell(5).SetCellValue("产品单价");
sheet2.CreateRow(3).CreateCell(6).SetCellValue("小计");
sheet2.CreateRow(3).CreateCell(7).SetCellValue("备注");
int h = 4;//行
int number = 1;//序号
for (int i = 0; i < list.Count; i++)
{
sheet2.CreateRow(h).CreateCell(0).SetCellValue(number.ToString());//序
sheet2.CreateRow(h).CreateCell(1).SetCellValue(list[i].Hm_name);//产品名称
sheet2.CreateRow(h).CreateCell(2).SetCellValue(list[i].Hm_CpXHNumber);//产品编号
sheet2.CreateRow(h).CreateCell(3).SetCellValue(list[i].Hm_CpBhNumber);//产品编号
sheet2.CreateRow(h).CreateCell(4).SetCellValue(list[i].Hm_counts.ToString());//数量
sheet2.CreateRow(h).CreateCell(5).SetCellValue(list[i].Hm_price.ToString());//单价
sheet2.CreateRow(h).CreateCell(6).SetCellValue(list[i].Hm_money.ToString());//小计
sheet2.CreateRow(h).CreateCell(7).SetCellValue(list[i].Hm_beiz);//备注
h++;
number++;
}
sheet2.CreateRow(h + 1).CreateCell(0).SetCellValue("合计");
sheet2.CreateRow(h + 1).CreateCell(7).SetCellValue(info.Ht_HTmoney.ToString());
sheet2.AddMergedRegion(new Region(h + 1, 0, h + 1, 7));
sheet2.CreateRow(h + 2).CreateCell(0).SetCellValue("二、交货地址");
sheet2.AddMergedRegion(new Region(h + 2, 0, h + 2, 7));
sheet2.CreateRow(h + 3).CreateCell(0).SetCellValue("地址:");
sheet2.AddMergedRegion(new Region(h + 3, 0, h + 3, 7));
sheet2.CreateRow(h + 4).CreateCell(0).SetCellValue("联系人:");
sheet2.AddMergedRegion(new Region(h + 4, 0, h + 4, 7));
//FileStream file = new FileStream(@"C:/" + info.Ht_HTName + ".xls", FileMode.Append);
//hssfWorkBook.Write(file);
//file.Close();
hssfWorkBook.Write(Response.OutputStream);
//Page.ClientScript.RegisterStartupScript(this.GetType(), "key_2", "<script>alert('文件保存在c:/!');</script>");
}
catch (Exception ex)
{
Page.ClientScript.RegisterStartupScript(this.GetType(), "key_1", "<script>alert('生成失败!');</script>");
}
}
}
留个笔记备忘~
找到更合理的方法再更新~~
哈哈,强大的NPOI
爱过知情重,醉过知酒浓

浙公网安备 33010602011771号