JCOM應用(二)

創建比較銷售行爲的一個簡單的MySQL數據庫的。它有三個表:
  · Sales是銷售的細節信息,包括銷售項、數量、銷售價格、是誰銷售的以及銷售地區。
  · People包含銷售人員的姓名和佣金。
  · Districts包含了銷售地區的名稱和稅率。
生成報表的時候,你須要使用下面的業務邏輯來算出真正的數值:

  · 毛銷售額等於銷售項乘以銷售價格加上地稅金額。java

  · 純銷售額等於毛銷售額減去銷售人員提取的稅前佣金。mysql

drop database if exists salesTable;
create database salesTable default character set utf8;

use salesTable;

drop table if exists sales;
create table sales(
  id int(11) primary key auto_increment,
  description varchar(225),
  quantity int(11),
  price double,
  district int(11),
  salesperson int(11)
);
insert into sales values(1,"clothes",10,10.0,1,1);

create table districts(
  id int(11) primary key auto_increment,
  districtname varchar(225),
  salestax double
);
insert into districts values(1,"guangzhou",0.1);

drop table if exists people;
create table  people(
  id int(11) primary key auto_increment,
  name varchar(255),
  commission double
);
insert into people values(1,"David",10);

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;

import jp.ne.so_net.ga2.no_ji.jcom.IDispatch;
import jp.ne.so_net.ga2.no_ji.jcom.ReleaseManager;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelApplication;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelRange;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbook;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorkbooks;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorksheet;
import jp.ne.so_net.ga2.no_ji.jcom.excel8.ExcelWorksheets;


public class Sales {

	/**
	 * @param args
	 */
	public static void main(String[] args)throws Exception {
		// TODO Auto-generated method stub
//1.從數據庫中獲取數據並載入Excel
		ReleaseManager rm = new ReleaseManager();
		//IDispatch xlsApp = null;
		Connection conn = null;
		try{
			//創建Excel的引用
			//xlsApp = new IDispatch(rm,"Excel.Application");
			//IDispatch excel = (IDispatch)xlsApp.get("Workbooks");
			ExcelApplication excel = new ExcelApplication(rm);
			//使它可視
			excel.Visible(false);
			//xlsApp.put("Visible", new java.lang.Boolean(false));
			//打開即將要用的模版工做簿
			ExcelWorkbooks xlBooks = excel.Workbooks();
			ExcelWorkbook xlBook = xlBooks.Open("E:\\slovx\\java\\eclipse\\jcom\\source\\sales.xlsx");
			//得到修改的範圍引用
			ExcelWorksheets xlSheets = xlBook.Worksheets();
			ExcelWorksheet xlSheet = xlSheets.Item(1);
			ExcelRange xlRange = xlSheet.Cells();
			
			//取數據
			Class.forName("com.mysql.jdbc.Driver");
			conn = DriverManager.getConnection("jdbc:mysql://localhost/" +
					"salesTable?user=root&password=");
			Statement stmt = conn.createStatement();
			ResultSet rs = null;
			String sql ="SELECT sales.id, sales.description, sales.quantity, sales.price, " +
					"districts.districtname,districts.salestax,people.name,people.commission " +
					"FROM sales,districts,people " +
					"WHERE sales.district = districts.id AND sales.salesperson = people.id " ;
			if(stmt.execute(sql))
			{
				rs = stmt.getResultSet();
			}
			int nColCount = rs.getMetaData().getColumnCount();
			int nRow = 1;
			int nCol = 0;
			while(rs.next())
			{
				nRow++;
				for(int i=1;i<=nColCount;i++)
				{
					xlRange.Item(nRow, i).Value(rs.getObject(i).toString());
				}
				//填入公式
				xlRange.Item(nRow, 9).Value("=RC[-6]*RC[-5]");
				xlRange.Item(nRow, 10).Value("=RC[-4]*RC[-1]/100");
				xlRange.Item(nRow, 11).Value("=RC[-2]+RC[-1]");
				xlRange.Item(nRow, 12).Value("=RC[-3]*((100-RC[-1])/100)");
			}
		}catch(Exception e){
		  e.printStackTrace();	
		}finally{
			if(rm != null){
				rm.release();
			}
			if(conn != null){
				conn.close();
			}
		}

	}

}
相關文章
相關標籤/搜索