lotus domino EXCEL导出功能开发

import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.text.DecimalFormat;
import java.util.Date;
import java.util.Vector;
import lotus.domino.AgentBase;
import lotus.domino.AgentContext;
import lotus.domino.Database;
import lotus.domino.Document;
import lotus.domino.NotesException;
import lotus.domino.Session;
import com.sap.mw.jco.JCO;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.FileOutputStream;    
import java.io.OutputStream;   
import jxl.Sheet;
import jxl.Workbook;
import jxl.write.WritableSheet;    
import jxl.write.WritableWorkbook;
import jxl.write.Label;  
public class JavaAgent extends AgentBase {

 public void NotesMain() {

  Session session = null;
  AgentContext agentContext = null;
  Database db = null;
  Document doc = null;
  SQLServer_BasicFunction  sqlbf = null;
  String dbname = "oerp";
  //ResultSet rs = null;
  //JCO.Function function = null;
        WritableWorkbook wwb;
        System.out.println("----------------------kkk");
  try {
   session = getSession();
   agentContext = session.getAgentContext();
   db = agentContext.getCurrentDatabase();
   doc = agentContext.getDocumentContext();
   sqlbf  =  new  SQLServer_BasicFunction(session, db, dbname);
   java.text.SimpleDateFormat format1 = new java.text.SimpleDateFormat("yyyyMMddHHmmss");
   Date now = new Date();
   String dateStr1 = format1.format(now);
   String filename=dateStr1 + ".xls";
   File directory = new File("");//参数为空
   
   String courseFile = null;
   courseFile = directory.getCanonicalPath() ;
   String filePath = null;
      filePath = courseFile+"//data//domino//html//outputexcel//"+filename;
   
   System.out.println(filePath);
   
   directory=null;

      // 创建Excel工作薄        
            // 新建立一个jxl文件,即在e盘下生成testJXL.xls    
            OutputStream os = new FileOutputStream(filePath); 
            wwb=Workbook.createWorkbook(os);     
            // 添加第一个工作表并设置第一个Sheet的名字    
            WritableSheet sheet = wwb.createSheet("sheet1", 0);   
   PrintWriter pw = getAgentOutput();
   DecimalFormat df2 = new DecimalFormat("####");  
   StringBuilder sb= new StringBuilder();
    
      // Label(x,y,z) 代表单元格的第x+1列,第y+1行, 内容z    
            // 在Label对象的子对象中指明单元格的位置和内容    
    Label  label = new Label(0,0,"是否录入到SAP系统");  
    sheet.addCell(label); 
    label = new Label(1,0,"物料编号");  
    sheet.addCell(label);
    label = new Label(2,0,"物料描述");  
    sheet.addCell(label);
    label = new Label(3,0,"供应商"); 
    sheet.addCell(label);
    label = new Label(4,0,"价格(含税)");
    sheet.addCell(label);
    label = new Label(5,0,"旧价格(含税)");
    sheet.addCell(label);
    label = new Label(6,0,"新旧价格差异率");
    sheet.addCell(label);
    label = new Label(7,0,"交货期");
    sheet.addCell(label);
    label = new Label(8,0,"税率");
    sheet.addCell(label);
    label = new Label(9,0,"材料费");
    sheet.addCell(label);
    label = new Label(10,0,"加工费");
    sheet.addCell(label);
    label = new Label(11,0,"是否含运");
    sheet.addCell(label);
    label = new Label(12,0,"跟最低价的差异率");
    sheet.addCell(label);
    label = new Label(13,0,"有效期从");
    sheet.addCell(label);
    label = new Label(14,0,"有效期到");
    sheet.addCell(label);
    label = new Label(15,0,"条件采购单位");
    sheet.addCell(label);
   
   int row =0;
   ResultSet rs = null;
      System.out.println(doc.getItemValueString("KEYUNID"));
   //try
   //{   
      rs=sqlbf.Select("SELECT * FROM WH_SRM_Vendorratio_Sub where  parentid ='"+ doc.getItemValueString("KEYUNID")+"'"); 
       while(rs.next())
    {
        System.out.println(row);
     row =row+1; 
     label = new Label(0,row,rs.getString("ZConfirm"));
     sheet.addCell(label);
     label = new Label(1,row,rs.getString("MATNR"));
     sheet.addCell(label);
     label = new Label(2,row, rs.getString("MAKTX"));
     sheet.addCell(label);
     label = new Label(3,row, rs.getString("VERDOR"));
     sheet.addCell(label);
     label = new Label(4,row, rs.getString("PRICE"));
     sheet.addCell(label);
     label = new Label(5,row, rs.getString("OLDPRICE"));
     sheet.addCell(label);
     label = new Label(6,row, rs.getString("DIFFPRICE"));
     sheet.addCell(label);
     label = new Label(7,row, rs.getString("DELIVERYTIME"));
     sheet.addCell(label);
     label = new Label(8,row, rs.getString("TAXRATE"));
     sheet.addCell(label);
     label = new Label(9,row, rs.getString("materialcost"));
     sheet.addCell(label);
     label = new Label(10,row, rs.getString("processcost"));
     sheet.addCell(label);
     label = new Label(11,row, rs.getString("FREIGHT"));
     sheet.addCell(label);
     label = new Label(12,row, rs.getString("LowPriceDiff"));
     sheet.addCell(label);
     label = new Label(13,row, rs.getString("B_VERDERTIME"));
     sheet.addCell(label);
     label = new Label(14,row, rs.getString("E_VERDERTIME"));
     sheet.addCell(label);
     label = new Label(15,row, rs.getString("MEINS"));
     sheet.addCell(label);    
    }

   
      //String PrintPath = "<script>window.parent.hiddenLayer();window.open('/outputexcel/" + filename+"');</script>";   
         //System.out.println(PrintPath);
      wwb.write(); 

         // 关闭文件     

         wwb.close();
         //pw.println(PrintPath);
         pw.println("<script>window.location.href=window.location.href;window.open('/outputexcel/" + filename+"');</script>");
   pw.close();
   
   
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    //if (rs != null)
    // rs.close();
    if (doc != null)
     doc.recycle();
    if (db != null)
     db.recycle();
    if (agentContext != null)
     agentContext.recycle();
    if (session != null)
     session.recycle();
    System.gc();
   } catch (NotesException ne) {
    ne.printStackTrace();
   } catch (Exception e) {
    // TODO 自动生成 catch 块
    e.printStackTrace();
   }
  }
 }

 
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值