123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using NPOI.HPSF;
- using NPOI.HSSF.UserModel;
- using NPOI.SS.UserModel;
- using ProjectBase.Data.Logs;
- using System;
- using System.IO;
- namespace ProjectBase.Data.Excel
- {
- public interface IReportExport
- {
- void GenerateData(HSSFWorkbook templatebook);
- }
- public class ExcelHelper
- {
- private HSSFWorkbook hssfworkbook;
- private string Filename;
- private string Templatename;
- private IReportExport exportor;
- public void InitializeWorkbook()
- {
- string TemplatePath = string.Format("{0}", Templatename);
- FileStream file = new FileStream(@TemplatePath, FileMode.Open, FileAccess.Read);
- hssfworkbook = new HSSFWorkbook(file);
- //create a entry of DocumentSummaryInformation
- NPOI.HPSF.DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
- dsi.Company = "siasun";
- hssfworkbook.DocumentSummaryInformation = dsi;
- //create a entry of SummaryInformation
- SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
- si.Subject = "Gem System";
- hssfworkbook.SummaryInformation = si;
- }
- protected MemoryStream WriteToStream()
- {
- MemoryStream file = new MemoryStream();
- hssfworkbook.Write(file);
- return file;
- }
- public ISheet PrintSheet()
- {
- return hssfworkbook.GetSheet(Templatename);
- }
- public void WriteToFile()
- {
- //删除文件
- System.IO.File.Delete(Filename);// 删除文件
- FileStream file = new FileStream(Filename, FileMode.Create);
- hssfworkbook.Write(file);
- file.Close();
- // return file;
- }
- /// <summary>
- ///
- /// </summary>
- /// <param name="filename">导出的文件名</param>
- /// <param name="templatefile">模板文件路径</param>
- /// <param name="exp">适配器</param>
- public ExcelHelper(string filename, string templatefile, IReportExport exp)
- {
- Filename = filename;
- Templatename = templatefile;
- exportor = exp;
- }
- protected void GenerateData(HSSFWorkbook templatebook)
- {
- exportor.GenerateData(templatebook);
- }
- public bool ExportSheet()
- {
- try
- {
- InitializeWorkbook();
- this.GenerateData(hssfworkbook);
- }
- catch (Exception ex)
- {
- LogHelper.log.Error(Templatename + "保存文档失败,失败原因为", ex);
- return false;
- }
- return true;
- }
- public bool Export()
- {
- try
- {
- InitializeWorkbook();
- this.GenerateData(hssfworkbook);
- WriteToFile();
- }
- catch (Exception ex)
- {
- LogHelper.log.Error(Templatename + "保存文档失败,失败原因为", ex);
- return false;
- }
- return true;
- }
- }
- }
|