Pastebin
API
tools
faq
paste
Login
Sign up
Please fix the following errors:
New Paste
Syntax Highlighting
package mhjexcel; import java.awt.Desktop; import java.awt.HeadlessException; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.sql.Connection; import java.sql.ResultSet; import java.sql.ResultSetMetaData; import java.sql.SQLException; import java.sql.Statement; import java.util.Map; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JFileChooser; import javax.swing.JOptionPane; import org.apache.poi.ss.util.*; import org.apache.poi.hssf.util.*; import org.apache.poi.ss.SpreadsheetVersion; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.DataFormatter; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.util.CellReference; import org.apache.poi.ss.util.AreaReference; import org.apache.poi.xssf.usermodel.XSSFCell; import org.apache.poi.xssf.usermodel.XSSFDataFormat; import org.apache.poi.xssf.usermodel.XSSFPivotTable; import org.apache.poi.xssf.usermodel.XSSFRow; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFTable; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import static org.apache.poi.xssf.usermodel.examples.CreatePivotTable.setCellData; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTable; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumn; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableColumns; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTTableStyleInfo; import org.apache.poi.xssf.usermodel.TextDirection; import org.apache.poi.xssf.usermodel.*; import org.apache.poi.ss.usermodel.*; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.RichTextString; import java.util.Map; import java.util.HashMap; import java.util.Calendar; import java.io.FileOutputStream; import java.text.DecimalFormat; import java.text.SimpleDateFormat; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import static org.apache.poi.ss.usermodel.Font.COLOR_RED; public class Frame_Match extends javax.swing.JFrame { public static File mhjfile; public static FileOutputStream mhjfileoutput; public static FileInputStream mhjfileinput; public static XSSFWorkbook mhjworkbook; public static XSSFSheet mhjsheet; public static XSSFRow mhjrow; public static XSSFCell mhjcell; public static String cellcontents; public static String mhjpath; public static String mhjextension; public static String mhjfilename; public static String mhjfulladdress; String mhjsheetname; int rowindex;//int rowindex = Integer.parseInt(txtrow.getText()); int colindex;//int colindex = Integer.parseInt(txtcol.getText()); int firstrow; int lastrow; int firstcol; int lastcol; int sheetindex;//int sheetindex = Integer.parseInt(txtsheet.getText()); DataFormatter mhjdataformater = new DataFormatter(); Connection con; Statement stmt; public static String sql; public static ResultSet rs; int rsrow; int firsrstrow; int lastrsrow; String ticker; // Double price; Double volume; Double price_balance; Double volume_balance; Integer kind; String comment; Integer date_year; Integer date_month; Integer date_day; Integer write_year; Integer write_month; Integer write_day; String treater2; String bill_or_link; int numberofallowedemptycells; public int outcounter; private String tablename; int colcounter = 0; int lastcolcounter = 6; int emptyrowcounter = 0; final int allowedemptyrows = 3; int emptycellcounter = 0; final int allowedemptycols = 13; boolean flagemtycols = false; int numberoftickers = 6; final int firstticker = 1; final double unknownvalue = 0.123456789; final int number_of_manual_prices = 100; String manual_tickers_names[] = new String[number_of_manual_prices]; double manual_tickers_buys[] = new double[number_of_manual_prices]; double manual_tickers_sells[] = new double[number_of_manual_prices]; public Frame_Match() { initComponents(); } public void err(Exception e) { String sometext = String.valueOf(e); outcounter++; System.out.println("************Exception**********" + outcounter); System.out.println("(line: " + Thread.currentThread().getStackTrace()[0].getLineNumber() + "+" + Thread.currentThread().getStackTrace()[1].getLineNumber() + "+" + Thread.currentThread().getStackTrace()[2].getLineNumber() + "+" + Thread.currentThread().getStackTrace()[3].getLineNumber() + "+" + Thread.currentThread().getStackTrace()[4].getLineNumber() + ")"); System.out.println("\n" + sometext); System.out.println("\n" + String.valueOf(e.getMessage())); System.out.println("\n" + String.valueOf(e.getCause())); System.out.println("************End of Exception reporting*********"); Logger.getLogger(Frame_Ticker.class.getName()).log(Level.SEVERE, null, e); } public void out(String sometext) { outcounter++; sometext = "\n" + outcounter + "-(line" + Thread.currentThread().getStackTrace()[2].getLineNumber() + ")==> " + sometext; System.out.println(sometext); } public void out(Object obj) { try { String text = String.valueOf(obj); out(text); } catch (Exception e) { System.out.println("مشکل در out"); } } public static void msg(String text) { JOptionPane.showMessageDialog(null, text); } @SuppressWarnings("unchecked") // <editor-fold defaultstate="collapsed" desc="Generated Code"> private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); btn_get_portfolios = new javax.swing.JButton(); btn_get_buy_prices = new javax.swing.JButton(); btn_get_sell_prices = new javax.swing.JButton(); btnoutput = new javax.swing.JButton(); btncomputation = new javax.swing.JButton(); jLabel1 = new javax.swing.JLabel(); txt_number_of_tickers = new javax.swing.JTextField(); chk_dont_merge = new javax.swing.JCheckBox(); setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE); btn_get_portfolios.setText("دریافت سبد های پیشنهادی"); btn_get_portfolios.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_get_portfoliosActionPerformed(evt); } }); btn_get_buy_prices.setText("دریافت قیمت های اولیه"); btn_get_buy_prices.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_get_buy_pricesActionPerformed(evt); } }); btn_get_sell_prices.setText("دریافت قیمت های امروز"); btn_get_sell_prices.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btn_get_sell_pricesActionPerformed(evt); } }); btnoutput.setText("تولید خروجی"); btnoutput.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btnoutputActionPerformed(evt); } }); btncomputation.setText("محاسبه سبد ها"); btncomputation.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btncomputationActionPerformed(evt); } }); jLabel1.setText("بیشینه نماد های درون سبد:"); txt_number_of_tickers.setEditable(false); txt_number_of_tickers.setText("6"); txt_number_of_tickers.addKeyListener(new java.awt.event.KeyAdapter() { public void keyReleased(java.awt.event.KeyEvent evt) { txt_number_of_tickersKeyReleased(evt); } }); chk_dont_merge.setSelected(true); chk_dont_merge.setText("عدم ادغام سلول ها"); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane()); getContentPane().setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(chk_dont_merge) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(btn_get_sell_prices, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btn_get_buy_prices, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btn_get_portfolios, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btncomputation, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btnoutput, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(10, 10, 10)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(txt_number_of_tickers, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jLabel1) .addContainerGap())))) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btn_get_buy_prices, btn_get_portfolios, btn_get_sell_prices, btncomputation}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(26, 26, 26) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(txt_number_of_tickers, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btn_get_portfolios) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btn_get_buy_prices) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btn_get_sell_prices) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btncomputation) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(btnoutput) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(chk_dont_merge) .addContainerGap(84, Short.MAX_VALUE)) ); pack(); }// </editor-fold> private void btn_get_portfoliosActionPerformed(java.awt.event.ActionEvent evt) { try { mhjfile = new File("C:\\Users\\Mohammad\\Desktop\\مسابقه.xlsx"); jFileChooser1 = new javax.swing.JFileChooser(); jFileChooser1.setCurrentDirectory(mhjfile); int result = jFileChooser1.showOpenDialog(this); if (result == JFileChooser.CANCEL_OPTION) { return; } mhjfile = jFileChooser1.getSelectedFile(); mhjfileinput = new FileInputStream(mhjfile); mhjworkbook = new XSSFWorkbook(mhjfileinput); mhjsheet = mhjworkbook.cloneSheet(0); XSSFDataFormat format = mhjworkbook.createDataFormat(); con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "delete FROM mosabegheh"; stmt.executeUpdate(sql); sql = "SELECT * FROM mosabegheh"; rs = stmt.executeQuery(sql); firstrow = 1; // firstcol = 1;//تغییر داده نشود // lastcol = 5; // ________________________ حقله روی شرکت کنندگان و سطر ها for (rowindex = firstrow;; rowindex++) { // mhjrow = mhjsheet.getRow(rowindex); // ___________________________ بررسی انتهای سطر ها if (mhjrow == null) { System.out.println( //"پایان سطر های ورکشیت و پایان کار جمع آوری داده ها" + "\n تعداد سطر های خوانده شده:" + rowindex ); break; } rs.moveToInsertRow(); mhjcell = mhjrow.getCell(0); cellcontents = mhjdataformater.formatCellValue(mhjcell); // _____________________بررسی نمادهای نامعلوم و قیمت های دستی if (cellcontents.equals("نمادهای دستی") || cellcontents.equals("")) { int manual_tickers_counter = 0; for (int tickernumber = firstticker; tickernumber <= numberoftickers; tickernumber++) { mhjcell = mhjrow.getCell(tickernumber); cellcontents = mhjdataformater.formatCellValue(mhjcell); String string_array[] = new String[2]; if (cellcontents != null) { string_array = cellcontents.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)"); } if (string_array.length != 2) { break; } String ticker = string_array[0]; double price = Double.parseDouble(string_array[1]); ticker = StandardizeTicker(ticker); if (ticker.contains("خرید")) { ticker = ticker.replaceAll("خرید", ""); // rs.updateDouble("buyprice" + String.valueOf(tickernumber), price); manual_tickers_buys[manual_tickers_counter] = price; } else if (ticker.contains("فروش")) { ticker = ticker.replaceAll("فروش", ""); // rs.updateDouble("buyprice" + String.valueOf(tickernumber), price); manual_tickers_sells[manual_tickers_counter] = price; } else { out("مشکل"); } manual_tickers_names[manual_tickers_counter] = ticker; manual_tickers_counter++; // rs.updateString("portfolioname" + String.valueOf(tickernumber), ticker); // rs.insertRow(); } continue; } // _______________ دریافت نام شرکت کنندگان _________________ rs.updateString("person", cellcontents); // _______________ دریافت نماد های منتخب شرکت کنندگان _________________ int emptycells = 0; for (int tickernumber = firstticker; tickernumber <= numberoftickers; tickernumber++) { // for (colindex = firstticker; colindex <= numberoftickers; colindex++) { mhjcell = mhjrow.getCell(tickernumber); cellcontents = mhjdataformater.formatCellValue(mhjcell);//cellcontents=mhjcell.getStringCellValue(); //mhjcell.setCellValue(cellcontents); cellcontents = cellcontents.replaceAll(",", ""); cellcontents = cellcontents.replaceAll("\\s", ""); cellcontents = cellcontents.replaceAll("-", ""); cellcontents = cellcontents.replaceAll("\\.", ""); cellcontents = cellcontents.replaceAll("ك", "ک"); cellcontents = cellcontents.replaceAll("ي", "ی"); cellcontents = cellcontents.replaceAll("آ", "ا"); cellcontents = cellcontents.replaceAll("\\d", ""); cellcontents = cellcontents.replaceAll("\\(", ""); cellcontents = cellcontents.replaceAll("\\)", ""); cellcontents = cellcontents.replaceAll("=", ""); cellcontents = cellcontents.replaceAll("\\*", ""); if (!cellcontents.equals("")) { rs.updateString("portfolioname" + String.valueOf(tickernumber - emptycells), cellcontents); } else { emptycells++; } } rs.insertRow(); } rs.close(); stmt.close(); msg("سبد های شرکت کنندگان در مسابقه دریافت شد."); } catch (HeadlessException | IOException | SQLException | NumberFormatException e) { err(e); } } private void btn_get_buy_pricesActionPerformed(java.awt.event.ActionEvent evt) { try { jFileChooser1 = new javax.swing.JFileChooser(); jFileChooser1.setCurrentDirectory(new File("C:\\Users\\Mohammad\\Desktop")); int result = jFileChooser1.showOpenDialog(this); if (result == JFileChooser.CANCEL_OPTION) { return; } mhjfile = jFileChooser1.getSelectedFile(); mhjworkbook = new XSSFWorkbook(mhjfile); mhjsheet = mhjworkbook.getSheetAt(0); XSSFDataFormat format = mhjworkbook.createDataFormat(); con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM mosabegheh"; rs = stmt.executeQuery(sql); firstrow = 3; firstcol = 1;//تغییر داده نشود lastcol = 5; int tickerscol = 0;//در اکسل int pricecol = 10;//در اکسل // int firstticker = 1; // int finalticker = 4; rs.beforeFirst(); while (rs.next()) { for (int tickernumber = firstticker; tickernumber <= numberoftickers; tickernumber++) { String ticker = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (ticker == null || ticker.equals("")) { continue; } for (rowindex = firstrow;; rowindex++) { mhjrow = mhjsheet.getRow(rowindex); if (mhjrow == null) { boolean found = false; for (int i = 0; i < manual_tickers_names.length; i++) { String name = manual_tickers_names[i]; double buy = manual_tickers_buys[i]; if (name != null && name.equals(ticker)) { rs.updateDouble("buyprice" + String.valueOf(tickernumber), buy); rs.updateRow(); found = true; break; } } if (!found) { out("قیمت خرید " + ticker + " پیدا نشد" ); } break; } mhjcell = mhjrow.getCell(tickerscol); cellcontents = mhjdataformater.formatCellValue(mhjcell); cellcontents = cellcontents.replaceAll(",", ""); cellcontents = cellcontents.replaceAll("\\s", ""); cellcontents = cellcontents.replaceAll("-", "_"); cellcontents = cellcontents.replaceAll("\\.", "_"); cellcontents = cellcontents.replaceAll("ك", "ک"); cellcontents = cellcontents.replaceAll("ي", "ی"); cellcontents = cellcontents.replaceAll("آ", "ا"); if (cellcontents.equals(ticker)) { // out(ticker + " پیدا شد در سطر شماره ی " + rowindex); mhjcell = mhjrow.getCell(pricecol); cellcontents = mhjdataformater.formatCellValue(mhjcell); Double price = Double.parseDouble(cellcontents); // out("price = " + price); rs.updateDouble("buyprice" + String.valueOf(tickernumber), price); rs.updateRow(); break; } } } } rs.close(); stmt.close(); msg("قیمت های اولیه دریافت شد"); } catch (HeadlessException | IOException | InvalidFormatException | SQLException | NumberFormatException e) { err(e); } } private void btn_get_sell_pricesActionPerformed(java.awt.event.ActionEvent evt) { try { jFileChooser1 = new javax.swing.JFileChooser(); jFileChooser1.setCurrentDirectory(new File("C:\\Users\\Mohammad\\Desktop")); int result = jFileChooser1.showOpenDialog(this); if (result == JFileChooser.CANCEL_OPTION) { return; } mhjfile = jFileChooser1.getSelectedFile(); mhjworkbook = new XSSFWorkbook(mhjfile); mhjsheet = mhjworkbook.getSheetAt(0); XSSFDataFormat format = mhjworkbook.createDataFormat(); con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM mosabegheh"; rs = stmt.executeQuery(sql); firstrow = 3; firstcol = 1;//تغییر داده نشود lastcol = 5; int tickerscol = 0;//در اکسل int pricecol = 10;//در اکسل // int firstticker = 1; // int finalticker = 4;//numberoftickers rs.beforeFirst(); while (rs.next()) { for (int tickernumber = firstticker; tickernumber <= numberoftickers; tickernumber++) { String ticker = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (ticker == null || ticker.equals("")) { continue; } for (rowindex = firstrow;; rowindex++) { mhjrow = mhjsheet.getRow(rowindex); if (mhjrow == null) { boolean found = false; for (int i = 0; i < manual_tickers_names.length; i++) { String name = manual_tickers_names[i]; double sell = manual_tickers_sells[i]; if (name != null && name.equals(ticker)) { rs.updateDouble("sellprice" + String.valueOf(tickernumber), sell); rs.updateRow(); found = true; break; } } if (!found) { out("قیمت فروش " + ticker + " پیدا نشد" ); } break; } mhjcell = mhjrow.getCell(tickerscol); cellcontents = mhjdataformater.formatCellValue(mhjcell); cellcontents = cellcontents.replaceAll(",", ""); cellcontents = cellcontents.replaceAll("\\s", ""); cellcontents = cellcontents.replaceAll("_", ""); cellcontents = cellcontents.replaceAll("-", "_"); cellcontents = cellcontents.replaceAll("\\.", "_"); cellcontents = cellcontents.replaceAll("ك", "ک"); cellcontents = cellcontents.replaceAll("ي", "ی"); cellcontents = cellcontents.replaceAll("آ", "ا"); if (cellcontents.equals(ticker)) { // out(ticker + " پیدا شد در سطر شماره ی " + rowindex); mhjcell = mhjrow.getCell(pricecol); cellcontents = mhjdataformater.formatCellValue(mhjcell); Double price = Double.parseDouble(cellcontents); // out("price = " + price); rs.updateDouble("sellprice" + String.valueOf(tickernumber), price); rs.updateRow(); break; } } } } rs.close(); stmt.close(); msg("قیمت های امروز دریافت شد."); } catch (HeadlessException | IOException | InvalidFormatException | SQLException | NumberFormatException e) { err(e); } } private void setTableRowNumbers(String tablename) { try { con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM " + tablename; //lets give it from search rs = stmt.executeQuery(sql); rs.beforeFirst(); while (rs.next()) { rs.updateInt("rownumber", rs.getRow()); rs.updateRow(); } out("در جدول " + tablename + "به میزان " + rs.getRow() + "عدد سطر شماره گذاری شد"); rs.close(); stmt.close(); } catch (Exception e) { err(e); } } private void write2ExcelOld() { try { int number_of_tickers = Integer.parseInt(txt_number_of_tickers.getText()); // con = mhjexcel.con; // stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // sql = "SELECT * FROM mosabegheh order by profit_person desc"; // rs = stmt.executeQuery(sql); // //___________________________________________ // mhjfile = new File("C:\\Users\\Mohammad\\Desktop\\نتایج.xlsx"); // mhjfileoutput = new FileOutputStream(mhjfile); // mhjworkbook = new XSSFWorkbook(); mhjsheet = mhjworkbook.createSheet("مدل 1");//mhjsheet = mhjworkbook.getSheetAt(sheetindex);//workbook exist from before //______________________styles_____________________ DecimalFormat floatformatter = new DecimalFormat("###,###,###,###,###.##"); CellStyle styleHeaders = mhjworkbook.createCellStyle(); styleHeaders.setAlignment(HorizontalAlignment.CENTER); styleHeaders.setBorderBottom(BorderStyle.THIN); styleHeaders.setBorderLeft(BorderStyle.THIN); styleHeaders.setBorderRight(BorderStyle.THIN); styleHeaders.setBorderTop(BorderStyle.THIN); styleHeaders.setBottomBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setRightBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setLeftBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setTopBorderColor(IndexedColors.WHITE.getIndex()); Font f = mhjworkbook.createFont(); f.setFontHeightInPoints((short) 12);//set font 1 to 12 point type f.setColor((short) 0xc);//COLOR_RED f.setBold(true); styleHeaders.setFont(f); f.setColor(IndexedColors.WHITE.getIndex()); styleHeaders.setFont(f); styleHeaders.setFillForegroundColor(IndexedColors.BLUE.getIndex()); styleHeaders.setFillPattern(FillPatternType.SOLID_FOREGROUND); CellStyle styleNormal = mhjworkbook.createCellStyle(); styleNormal.setAlignment(HorizontalAlignment.CENTER); styleNormal.setBorderBottom(BorderStyle.THIN); styleNormal.setBorderLeft(BorderStyle.THIN); styleNormal.setBorderRight(BorderStyle.THIN); styleNormal.setBorderTop(BorderStyle.THIN); CellStyle styleTickers = mhjworkbook.createCellStyle(); styleTickers.setAlignment(HorizontalAlignment.CENTER); styleTickers.setBorderBottom(BorderStyle.THIN); styleTickers.setBorderLeft(BorderStyle.THIN); styleTickers.setBorderRight(BorderStyle.THIN); styleTickers.setBorderTop(BorderStyle.THIN); styleTickers.setFillForegroundColor(IndexedColors.AQUA.getIndex()); styleTickers.setFillPattern(FillPatternType.SOLID_FOREGROUND); //___________________________________________ for (int i = 0; i <= number_of_tickers + 1; i++) { mhjsheet.setColumnWidth((short) i, 4000); } //___________________________________________ // mhjworkbook.setSheetName(0, "نتایج"); mhjrow = mhjsheet.createRow(0); // mhjcell = mhjrow.createCell(0); // mhjcell.setCellValue("نتایج مسابقه"); // mhjcell.setCellStyle(style1); mhjcell = mhjrow.createCell(0); mhjcell.setCellValue("شرکت کننده"); mhjcell.setCellStyle(styleHeaders); for (int tickernumber = 1; tickernumber <= number_of_tickers; tickernumber++) { mhjcell = mhjrow.createCell(tickernumber); mhjcell.setCellValue("نماد " + String.valueOf(tickernumber)); mhjcell.setCellStyle(styleHeaders); } //___________________________________________ rs.beforeFirst(); while (rs.next()) { rowindex = rs.getRow() * 2 - 1; mhjrow = mhjsheet.createRow(rowindex); Row headerRow = mhjsheet.getRow(0); headerRow.setHeight((short) 0x249);//mhjrow.setHeightInPoints(25f); // mhjcell = mhjrow.createCell(0); // mhjcell.setCellValue("سبد"); mhjcell = mhjrow.createCell(0); mhjcell.setCellValue(rs.getString("person")); mhjcell.setCellStyle(styleHeaders); for (int tickernumber = 1; tickernumber <= number_of_tickers; tickernumber++) { mhjcell = mhjrow.createCell(tickernumber); mhjcell.setCellValue(rs.getString("portfolioname" + String.valueOf(tickernumber))); mhjcell.setCellStyle(styleTickers); } //_____________ rowindex++; mhjrow = mhjsheet.createRow(rowindex); // mhjcell = mhjrow.createCell(0); // mhjcell.setCellValue("درصد"); mhjcell = mhjrow.createCell(0); mhjcell.setCellValue(Double.parseDouble(floatformatter.format(rs.getDouble("profit_person")))); mhjcell.setCellStyle(styleNormal); for (int tickernumber = 1; tickernumber <= number_of_tickers; tickernumber++) { mhjcell = mhjrow.createCell(tickernumber); mhjcell.setCellStyle(styleNormal); Double thisprofit = rs.getDouble("profit" + String.valueOf(tickernumber)); if (rs.wasNull()) { continue; } mhjcell.setCellValue(Double.parseDouble(floatformatter.format(thisprofit))); } } // XSSFPivotTable pivotTable = mhjsheet.createPivotTable(new AreaReference(new CellReference("a1"), new CellReference("c7")), new CellReference("a1")); // pivotTable.addRowLabel(0); // XSSFTable my_table = mhjsheet.createTable(); // CTTable cttable = my_table.getCTTable(); // AreaReference my_data_range = new AreaReference(new CellReference(0, 0), new CellReference(rowindex, numberoftickers + 1)); // cttable.setRef(my_data_range.formatAsString()); // cttable.setTotalsRowCount(rowindex+1); // cttable.setDisplayName("نتایج مسابقه"); // cttable.setName("match_results"); // cttable.setId(1L); // cttable.addNewTableColumns(); // CTTableColumns columns = cttable.addNewTableColumns(); // columns.setCount(5L); //define number of columns // for (int i = 0; i < 5; i++) { // CTTableColumn column = columns.addNewTableColumn(); // column.setName("Column" + i); // column.setId(i + 1); // } //_________________________________________________ // mhjworkbook.write(mhjfileoutput); // mhjworkbook.close(); // mhjfileoutput.close(); // stmt.close(); // rs.close(); // if (mhjfile.exists() || mhjfile.isDirectory()) { // Desktop.getDesktop().open(mhjfile); //// Runtime.getRuntime().exec("explorer.exe /select , " + mhjfile); // } // _____________________ تعیین پهنای ستون ها _____________________________ // for (int i = 0; i < HeaderNames.length; i++) { // mhjsheet.setColumnWidth((short) i, ColWidth[i]); // } for (int columnNumber = 0; columnNumber <= number_of_tickers; columnNumber++) { mhjsheet.autoSizeColumn(columnNumber, true); } } catch (SQLException | NumberFormatException e) { err(e); } } private void write2ExcelResults() { try { int number_of_tickers = Integer.parseInt(txt_number_of_tickers.getText()); // con = mhjexcel.con; // stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); // sql = "SELECT * FROM mosabegheh order by profit_person desc"; // rs = stmt.executeQuery(sql); // //___________________________________________ // mhjfile = new File("C:\\Users\\Mohammad\\Desktop\\نتایج.xlsx"); // mhjfileoutput = new FileOutputStream(mhjfile); // mhjworkbook = new XSSFWorkbook(); mhjsheet = mhjworkbook.createSheet("نتایج");//mhjsheet = mhjworkbook.getSheetAt(sheetindex);//workbook exist from before //______________________styles_____________________ // mhjsheet.getCTWorksheet().getSheetViews().getSheetViewArray(0).setRightToLeft(true); DecimalFormat floatformatter = new DecimalFormat("###,###,###,###,###.##"); CellStyle styleHeaders = mhjworkbook.createCellStyle(); styleHeaders.setAlignment(HorizontalAlignment.CENTER); styleHeaders.setVerticalAlignment(styleHeaders.VERTICAL_CENTER); styleHeaders.setBorderBottom(BorderStyle.THIN); styleHeaders.setBorderLeft(BorderStyle.THIN); styleHeaders.setBorderRight(BorderStyle.THIN); styleHeaders.setBorderTop(BorderStyle.THIN); styleHeaders.setBottomBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setRightBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setLeftBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setTopBorderColor(IndexedColors.WHITE.getIndex()); Font f = mhjworkbook.createFont(); f.setFontHeightInPoints((short) 12);//set font 1 to 12 point type f.setColor((short) 0xc);//COLOR_RED f.setBold(true); styleHeaders.setFont(f); f.setColor(IndexedColors.WHITE.getIndex()); styleHeaders.setFont(f); styleHeaders.setFillForegroundColor(IndexedColors.BLUE.getIndex()); styleHeaders.setFillPattern(FillPatternType.SOLID_FOREGROUND); CellStyle styleHeaders2 = styleHeaders; styleHeaders2.setAlignment(HorizontalAlignment.RIGHT); CellStyle styleNormal = mhjworkbook.createCellStyle(); styleNormal.setAlignment(HorizontalAlignment.CENTER); styleNormal.setBorderBottom(BorderStyle.THIN); styleNormal.setBorderLeft(BorderStyle.THIN); styleNormal.setBorderRight(BorderStyle.THIN); styleNormal.setBorderTop(BorderStyle.THIN); CellStyle styleTickers = mhjworkbook.createCellStyle(); styleTickers.setAlignment(HorizontalAlignment.CENTER); styleHeaders.setVerticalAlignment(styleHeaders.VERTICAL_CENTER); styleTickers.setBorderBottom(BorderStyle.THIN); styleTickers.setBorderLeft(BorderStyle.THIN); styleTickers.setBorderRight(BorderStyle.THIN); styleTickers.setBorderTop(BorderStyle.THIN); styleTickers.setFillForegroundColor(IndexedColors.AQUA.getIndex()); styleTickers.setFillPattern(FillPatternType.SOLID_FOREGROUND); CellStyle styleToogle = mhjworkbook.createCellStyle(); for (int i = 0; i <= number_of_tickers + 1; i++) { mhjsheet.setColumnWidth((short) i, 6000); } //____________________هدر های جدول اکسل_______________________ // mhjworkbook.setSheetName(0, "نتایج"); mhjrow = mhjsheet.createRow(0); mhjcell = mhjrow.createCell(0); mhjcell.setCellValue("شرکت کننده"); mhjcell.setCellStyle(styleHeaders); for (int tickernumber = 1; tickernumber <= number_of_tickers; tickernumber++) { mhjcell = mhjrow.createCell(tickernumber); mhjcell.setCellValue("نماد " + String.valueOf(tickernumber)); mhjcell.setCellStyle(styleHeaders); } //___________________________________________ boolean oddcounter = true; rs.beforeFirst(); while (rs.next()) { if (oddcounter) { styleToogle = styleNormal; } else { styleToogle = styleTickers; } oddcounter = !oddcounter; rowindex = rs.getRow(); mhjrow = mhjsheet.createRow(rowindex); Row headerRow = mhjsheet.getRow(0); headerRow.setHeight((short) 0x249); mhjcell = mhjrow.createCell(0); mhjcell.setCellStyle(styleHeaders2); String Person = rs.getString("person"); Double Person_profit = rs.getDouble("profit_person"); // mhjcell.setCellValue(Person + " - " + floatformatter.format(Person_profit)); mhjcell.setCellValue("\u200E" + Person + " (" + floatformatter.format(Person_profit) + ")"); for (int tickernumber = 1; tickernumber <= number_of_tickers; tickernumber++) { mhjcell = mhjrow.createCell(tickernumber); mhjcell.setCellStyle(styleToogle); Double thisprofit = rs.getDouble("profit" + String.valueOf(tickernumber)); String tickername = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (rs.wasNull()) { continue; } // mhjcell.setCellValue(tickername + " - " + floatformatter.format(thisprofit)); mhjcell.setCellValue("\u200E" + tickername + " (" + floatformatter.format(thisprofit) + ")"); if (thisprofit == unknownvalue) { mhjcell.setCellValue("\u200E" + tickername + " (؟)"); } } } // //_________________________________________________ // mhjworkbook.write(mhjfileoutput); // mhjworkbook.close(); // mhjfileoutput.close(); // stmt.close(); // rs.close(); // if (mhjfile.exists() || mhjfile.isDirectory()) { // Desktop.getDesktop().open(mhjfile); // } // _____________________ تعیین پهنای ستون ها _____________________________ // for (int i = 0; i < HeaderNames.length; i++) { // mhjsheet.setColumnWidth((short) i, ColWidth[i]); // } for (int columnNumber = 0; columnNumber <= number_of_tickers; columnNumber++) { mhjsheet.autoSizeColumn(columnNumber, true); } } catch (Exception e) { err(e); } } private void write2ExcelPortfolios() { try { sql = "select * from mosabegheh order by rownumber"; // می خواهیم ترتیب بر اساس وارد شدن سبد ها باشد rs = stmt.executeQuery(sql); // _______________________ پارامتر ها _______________ mhjsheet = mhjworkbook.createSheet("سبد ها");//mhjsheet = mhjworkbook.getSheetAt(sheetindex);//workbook exist from before rs.last(); int participantsCount = rs.getRow(); int totalheaderrows = 1; int rowheader = 0; int rowdetails = 1; int totalsubrows = 3; int subrowticker = 0; int subrowbuy = 1; int subrowsell = 2; int totalcols = 5; int colportfolionumber = 0; int colparticipant = 1; int colrank = 2; int colprofit = 3; int colkind = 4; int numOfTickers = Integer.parseInt(txt_number_of_tickers.getText()); String HeaderNames[] = new String[totalcols + numOfTickers]; HeaderNames[0] = "شماره سبد"; HeaderNames[1] = "شرکت کننده"; HeaderNames[2] = "رتبه"; HeaderNames[3] = "سود"; HeaderNames[4] = "نوع"; for (int tickernumber = firstticker; tickernumber <= numOfTickers; tickernumber++) { HeaderNames[4 + tickernumber] = "نماد " + tickernumber; } // int ColWidth[] = new int[totalcols + numberoftickers]; // ColWidth[0] = 2500; // ColWidth[1] = 6000; // ColWidth[2] = 1000; // ColWidth[3] = 2000; // ColWidth[4] = 6000; // for (int tickernumber = firstticker; tickernumber <= numberoftickers; tickernumber++) { // ColWidth[4 + tickernumber] = 6000; // } // _____________________ تولید سطر ها و ستون ها _______________ for (int i = 0; i <= (participantsCount * totalsubrows); i++) { // participantsCount + 1 -1 // one for header row and one for begining of participatns from 1. mhjrow = mhjsheet.createRow(i); for (int j = 0; j < ((totalcols + numOfTickers)); j++) { mhjcell = mhjrow.createCell(j); } } //______________________styles_____________________ // mhjsheet.getCTWorksheet().getSheetViews().getSheetViewArray(0).setRightToLeft(true); DecimalFormat floatformatter = new DecimalFormat("###,###,###,###,###.##"); CellStyle styleHeaders = mhjworkbook.createCellStyle(); styleHeaders.setAlignment(HorizontalAlignment.CENTER); styleHeaders.setVerticalAlignment(styleHeaders.VERTICAL_CENTER); styleHeaders.setBorderBottom(BorderStyle.THIN); styleHeaders.setBorderLeft(BorderStyle.THIN); styleHeaders.setBorderRight(BorderStyle.THIN); styleHeaders.setBorderTop(BorderStyle.THIN); styleHeaders.setBottomBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setRightBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setLeftBorderColor(IndexedColors.WHITE.getIndex()); styleHeaders.setTopBorderColor(IndexedColors.WHITE.getIndex()); Font f = mhjworkbook.createFont(); f.setFontHeightInPoints((short) 12);//set font 1 to 12 point type f.setColor((short) 0xc);//COLOR_RED f.setBold(true); styleHeaders.setFont(f); f.setColor(IndexedColors.WHITE.getIndex()); styleHeaders.setFont(f); styleHeaders.setFillForegroundColor(IndexedColors.BLUE.getIndex()); styleHeaders.setFillPattern(FillPatternType.SOLID_FOREGROUND); CellStyle styleNormal = mhjworkbook.createCellStyle(); styleNormal.setAlignment(HorizontalAlignment.CENTER); styleNormal.setVerticalAlignment(styleNormal.VERTICAL_CENTER); styleNormal.setBorderBottom(BorderStyle.THIN); styleNormal.setBorderLeft(BorderStyle.THIN); styleNormal.setBorderRight(BorderStyle.THIN); styleNormal.setBorderTop(BorderStyle.THIN); CellStyle styleTickers = mhjworkbook.createCellStyle(); styleTickers.setAlignment(HorizontalAlignment.CENTER); styleTickers.setVerticalAlignment(styleTickers.VERTICAL_CENTER); styleTickers.setBorderBottom(BorderStyle.THIN); styleTickers.setBorderLeft(BorderStyle.THIN); styleTickers.setBorderRight(BorderStyle.THIN); styleTickers.setBorderTop(BorderStyle.THIN); styleTickers.setFillForegroundColor(IndexedColors.AQUA.getIndex()); styleTickers.setFillPattern(FillPatternType.SOLID_FOREGROUND); CellStyle styleToogle = mhjworkbook.createCellStyle(); //________________________هدر های اکسل ___________________ mhjrow = mhjsheet.getRow(rowheader); for (int i = 0; i < HeaderNames.length; i++) { mhjcell = mhjrow.getCell(i); mhjcell.setCellValue(HeaderNames[i]); mhjcell.setCellStyle(styleHeaders); // mhjsheet.setColumnWidth((short) i, ColWidth[i]); } Row headerRow = mhjsheet.getRow(rowheader); headerRow.setHeight((short) 0x249); //______________________سایر سطر ها_____________________ boolean oddcounter = true; rs.beforeFirst(); while (rs.next()) { if (oddcounter) { styleToogle = styleNormal; } else { styleToogle = styleTickers; } oddcounter = !oddcounter; //______________________ ستون شماره سبد _____________________ rowindex = (rs.getRow() * totalsubrows) - totalsubrows + rowdetails; mhjrow = mhjsheet.getRow(rowindex); mhjcell = mhjrow.getCell(colportfolionumber); mhjcell.setCellStyle(styleHeaders); mhjcell.setCellValue(rs.getInt("rownumber")); mhjrow = mhjsheet.getRow(rowindex + 1); mhjcell = mhjrow.getCell(colportfolionumber); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); mhjrow = mhjsheet.getRow(rowindex + 2); mhjcell = mhjrow.getCell(colportfolionumber); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); if (!chk_dont_merge.isSelected()) { mhjsheet.addMergedRegion(new CellRangeAddress(rowindex, rowindex + 2, colportfolionumber, colportfolionumber)); } //______________________ ستون رتبه _____________________ rowindex = (rs.getRow() * totalsubrows) - totalsubrows + rowdetails; mhjrow = mhjsheet.getRow(rowindex); mhjcell = mhjrow.getCell(colrank); mhjcell.setCellStyle(styleHeaders); mhjcell.setCellValue(rs.getInt("rank")); mhjrow = mhjsheet.getRow(rowindex + 1); mhjcell = mhjrow.getCell(colrank); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); mhjrow = mhjsheet.getRow(rowindex + 2); mhjcell = mhjrow.getCell(colrank); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); if (!chk_dont_merge.isSelected()) { mhjsheet.addMergedRegion(new CellRangeAddress(rowindex, rowindex + 2, colrank, colrank)); } //______________________ ستون سود _____________________ rowindex = (rs.getRow() * totalsubrows) - totalsubrows + rowdetails; //یکی به خاطر اینکه پایگاه داده از یک شروع میشه و این از صفر یکی هم به خاطر اینکه از بین سه تا بیاد وسط mhjrow = mhjsheet.getRow(rowindex); mhjcell = mhjrow.getCell(colprofit); mhjcell.setCellStyle(styleHeaders); Double Person_profit = rs.getDouble("profit_person"); mhjcell.setCellValue(Double.parseDouble(floatformatter.format(Person_profit))); mhjrow = mhjsheet.getRow(rowindex + 1); mhjcell = mhjrow.getCell(colprofit); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); mhjrow = mhjsheet.getRow(rowindex + 2); mhjcell = mhjrow.getCell(colprofit); mhjcell.setCellStyle(styleHeaders); // mhjcell.setCellValue("_"); if (!chk_dont_merge.isSelected()) { mhjsheet.addMergedRegion(new CellRangeAddress(rowindex, rowindex + 2, colprofit, colprofit)); } //______________________ ستون شرکت کنندگان _____________________ rowindex = (rs.getRow() * totalsubrows) - totalsubrows + rowdetails; //یکی به خاطر اینکه پایگاه داده از یک شروع میشه و این از صفر یکی هم به خاطر اینکه از بین سه تا بیاد وسط mhjrow = mhjsheet.getRow(rowindex); mhjcell = mhjrow.getCell(colparticipant); mhjcell.setCellStyle(styleHeaders); String Person = rs.getString("person"); mhjcell.setCellValue("\u200E" + Person); mhjrow = mhjsheet.getRow(rowindex + 1); mhjcell = mhjrow.getCell(colparticipant); mhjcell.setCellStyle(styleHeaders); mhjrow = mhjsheet.getRow(rowindex + 2); mhjcell = mhjrow.getCell(colparticipant); mhjcell.setCellStyle(styleHeaders); if (!chk_dont_merge.isSelected()) { mhjsheet.addMergedRegion(new CellRangeAddress(rowindex, rowindex + 2, colparticipant, colparticipant)); } //_____________________ ستون نوع عمل _________________________ mhjrow = mhjsheet.getRow(rowindex + subrowticker); mhjcell = mhjrow.getCell(colkind); mhjcell.setCellStyle(styleToogle); mhjcell.setCellValue("نماد"); mhjrow = mhjsheet.getRow(rowindex + subrowbuy); mhjcell = mhjrow.getCell(colkind); mhjcell.setCellStyle(styleToogle); mhjcell.setCellValue("خرید"); mhjrow = mhjsheet.getRow(rowindex + subrowsell); mhjcell = mhjrow.getCell(colkind); mhjcell.setCellStyle(styleToogle); mhjcell.setCellValue("فروش"); //_____________________ ستون نوع عمل _________________________ // _____________________ اول نماد _____________________________ mhjrow = mhjsheet.getRow(rowindex + subrowticker); for (int tickernumber = 1; tickernumber <= numOfTickers; tickernumber++) { mhjcell = mhjrow.getCell(tickernumber + colkind); mhjcell.setCellStyle(styleToogle); Double thisprofit = rs.getDouble("profit" + String.valueOf(tickernumber)); String tickername = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (rs.wasNull()) { continue; } mhjcell.setCellValue("\u200E" + tickername + " (" + floatformatter.format(thisprofit) + ")"); if (thisprofit == unknownvalue) { mhjcell.setCellValue("\u200E" + tickername + " (؟)"); } } // _____________________ دوم خرید _____________________________ mhjrow = mhjsheet.getRow(rowindex + subrowbuy); for (int tickernumber = 1; tickernumber <= numOfTickers; tickernumber++) { mhjcell = mhjrow.getCell(tickernumber + colkind); mhjcell.setCellStyle(styleToogle); Double thisprofit = rs.getDouble("profit" + String.valueOf(tickernumber)); String tickername = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (rs.wasNull()) { continue; } double buy = rs.getDouble("buyprice" + String.valueOf(tickernumber)); mhjcell.setCellValue(buy); if (buy == 0) { mhjcell.setCellValue("نامعلوم"); } } // _____________________ سوم فروش _____________________________ mhjrow = mhjsheet.getRow(rowindex + subrowsell); for (int tickernumber = 1; tickernumber <= numOfTickers; tickernumber++) { mhjcell = mhjrow.getCell(tickernumber + colkind); mhjcell.setCellStyle(styleToogle); Double thisprofit = rs.getDouble("profit" + String.valueOf(tickernumber)); String tickername = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (rs.wasNull()) { continue; } double sell = rs.getDouble("sellprice" + String.valueOf(tickernumber)); mhjcell.setCellValue(sell); if (sell == 0) { mhjcell.setCellValue("نامعلوم"); } } } // _____________________ تعیین پهنای ستون ها _____________________________ // for (int i = 0; i < HeaderNames.length; i++) { // mhjsheet.setColumnWidth((short) i, ColWidth[i]); // } for (int columnNumber = 0; columnNumber <= totalcols + numOfTickers; columnNumber++) { mhjsheet.autoSizeColumn(columnNumber, true); } } catch (SQLException | NumberFormatException e) { err(e); } } private void btnoutputActionPerformed(java.awt.event.ActionEvent evt) { try { //___________________________________________ con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM mosabegheh order by profit_person desc"; rs = stmt.executeQuery(sql); //___________________________________________ mhjfile = new File("C:\\Users\\Mohammad\\Desktop\\نتایج.xlsx"); mhjfileoutput = new FileOutputStream(mhjfile); mhjworkbook = new XSSFWorkbook(); // if (radio1.isSelected()) { // write2Excel1(); // } else if (radio2.isSelected()) { // write2Excel2(); // } else if (radio3.isSelected()) { // write2Excel3(); // } write2ExcelResults(); out("نتایج تولید شد."); write2ExcelPortfolios(); out("سبد ها تولید شد."); write2ExcelOld(); out("مدل اول تولید شد."); //_________________________________________________ mhjworkbook.write(mhjfileoutput); mhjworkbook.close(); mhjfileoutput.close(); stmt.close(); rs.close(); if (mhjfile.exists() || mhjfile.isDirectory()) { Desktop.getDesktop().open(mhjfile); } } catch (SQLException | IOException e) { err(e); } } private void btncomputationActionPerformed(java.awt.event.ActionEvent evt) { try { // ___________________ numbering rows of database (in table mosabegheh) setTableRowNumbers("mosabegheh"); // ___________________ computation of profits con = mhjexcel.con; stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM mosabegheh"; rs = stmt.executeQuery(sql); double number_of_persons = 0; double max_portfolios_tickers = 0; rs.beforeFirst(); while (rs.next()) { double profitcum = 0; double portfolio_number = 0; for (int tickernumber = 1; tickernumber <= numberoftickers; tickernumber++) { String ticker = rs.getString("portfolioname" + String.valueOf(tickernumber)); if (ticker != null) { double buy = rs.getDouble("buyprice" + String.valueOf(tickernumber)); if (buy == 0) { out("مشکل در قیمت خرید " + rs.getString("person") + " profit" + String.valueOf(tickernumber)); rs.updateDouble("profit" + String.valueOf(tickernumber), unknownvalue); continue; } double sell = rs.getDouble("sellprice" + String.valueOf(tickernumber)); if (sell == 0) { out("مشکل در قیمت فروش " + rs.getString("person") + " profit" + String.valueOf(tickernumber)); rs.updateDouble("profit" + String.valueOf(tickernumber), unknownvalue); continue; } portfolio_number++; double profit = sell - buy; double profitpercents = 100 * profit / buy; rs.updateDouble("profit" + String.valueOf(tickernumber), profitpercents); profitcum += profitpercents; } } // out(profitcum); // out(portfolio_number); double avgprofit = 0; if (portfolio_number != 0) { avgprofit = (double) profitcum / portfolio_number; max_portfolios_tickers = Math.max(max_portfolios_tickers, portfolio_number); } rs.updateDouble("profit_person", (double) avgprofit); rs.updateRow(); number_of_persons++; } rs.close(); stmt.close(); // _________________ محاسبه ی رتبه stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE); sql = "SELECT * FROM mosabegheh order by profit_person desc"; rs = stmt.executeQuery(sql); rs.last(); int ranks[] = new int[rs.getRow() + 1]; rs.beforeFirst(); while (rs.next()) {// ذخیره موقت در یک متغیر int rank = rs.getRow(); int portfolionumber = rs.getInt("rownumber"); ranks[portfolionumber] = rank; } sql = "SELECT * FROM mosabegheh"; rs = stmt.executeQuery(sql); rs.beforeFirst(); while (rs.next()) { // ذخیره بر روی پایگاه داده از روی متغیر rs.updateInt("rank", ranks[rs.getInt("rownumber")]); rs.updateRow(); } rs.close(); stmt.close(); msg(number_of_persons + " عدد سبد محاسبه شد."); DecimalFormat floatformatter = new DecimalFormat("###,###,###,###,###"); txt_number_of_tickers.setText(floatformatter.format(max_portfolios_tickers)); } catch (SQLException ex) { Logger.getLogger(Frame_Match.class.getName()).log(Level.SEVERE, null, ex); } } private void txt_number_of_tickersKeyReleased(java.awt.event.KeyEvent evt) { numberoftickers = Integer.parseInt(txt_number_of_tickers.getText()); } public static void main(String args[]) { /* Set the Nimbus look and feel */ //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html */ try { for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { if ("Nimbus".equals(info.getName())) { javax.swing.UIManager.setLookAndFeel(info.getClassName()); break; } } } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) { java.util.logging.Logger.getLogger(Frame_Match.class .getName()).log(java.util.logging.Level.SEVERE, null, ex); } //</editor-fold> //</editor-fold> /* Create and display the form */ java.awt.EventQueue.invokeLater(new Runnable() { @Override public void run() { new Frame_Match().setVisible(true); } }); } // Variables declaration - do not modify private javax.swing.JButton btn_get_buy_prices; private javax.swing.JButton btn_get_portfolios; private javax.swing.JButton btn_get_sell_prices; private javax.swing.JButton btncomputation; private javax.swing.JButton btnoutput; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JCheckBox chk_dont_merge; private javax.swing.JLabel jLabel1; private javax.swing.JTextField txt_number_of_tickers; // End of variables declaration private javax.swing.JFileChooser jFileChooser1; private String StandardizeTicker(String ticker) { ticker = ticker.replaceAll(",", ""); ticker = ticker.replaceAll("\\s", ""); ticker = ticker.replaceAll("-", "_"); ticker = ticker.replaceAll("\\.", "_"); ticker = ticker.replaceAll("ك", "ک"); ticker = ticker.replaceAll("ي", "ی"); return ticker; } }
Optional Paste Settings
Category:
None
Cryptocurrency
Cybersecurity
Fixit
Food
Gaming
Haiku
Help
History
Housing
Jokes
Legal
Money
Movies
Music
Pets
Photo
Science
Software
Source Code
Spirit
Sports
Travel
TV
Writing
Tags:
Syntax Highlighting:
None
Bash
C
C#
C++
CSS
HTML
JSON
Java
JavaScript
Lua
Markdown (PRO members only)
Objective C
PHP
Perl
Python
Ruby
Swift
4CS
6502 ACME Cross Assembler
6502 Kick Assembler
6502 TASM/64TASS
ABAP
AIMMS
ALGOL 68
APT Sources
ARM
ASM (NASM)
ASP
ActionScript
ActionScript 3
Ada
Apache Log
AppleScript
Arduino
Asymptote
AutoIt
Autohotkey
Avisynth
Awk
BASCOM AVR
BNF
BOO
Bash
Basic4GL
Batch
BibTeX
Blitz Basic
Blitz3D
BlitzMax
BrainFuck
C
C (WinAPI)
C Intermediate Language
C for Macs
C#
C++
C++ (WinAPI)
C++ (with Qt extensions)
C: Loadrunner
CAD DCL
CAD Lisp
CFDG
CMake
COBOL
CSS
Ceylon
ChaiScript
Chapel
Clojure
Clone C
Clone C++
CoffeeScript
ColdFusion
Cuesheet
D
DCL
DCPU-16
DCS
DIV
DOT
Dart
Delphi
Delphi Prism (Oxygene)
Diff
E
ECMAScript
EPC
Easytrieve
Eiffel
Email
Erlang
Euphoria
F#
FO Language
Falcon
Filemaker
Formula One
Fortran
FreeBasic
FreeSWITCH
GAMBAS
GDB
GDScript
Game Maker
Genero
Genie
GetText
Go
Godot GLSL
Groovy
GwBasic
HQ9 Plus
HTML
HTML 5
Haskell
Haxe
HicEst
IDL
INI file
INTERCAL
IO
ISPF Panel Definition
Icon
Inno Script
J
JCL
JSON
Java
Java 5
JavaScript
Julia
KSP (Kontakt Script)
KiXtart
Kotlin
LDIF
LLVM
LOL Code
LScript
Latex
Liberty BASIC
Linden Scripting
Lisp
Loco Basic
Logtalk
Lotus Formulas
Lotus Script
Lua
M68000 Assembler
MIX Assembler
MK-61/52
MPASM
MXML
MagikSF
Make
MapBasic
Markdown (PRO members only)
MatLab
Mercury
MetaPost
Modula 2
Modula 3
Motorola 68000 HiSoft Dev
MySQL
Nagios
NetRexx
Nginx
Nim
NullSoft Installer
OCaml
OCaml Brief
Oberon 2
Objeck Programming Langua
Objective C
Octave
Open Object Rexx
OpenBSD PACKET FILTER
OpenGL Shading
Openoffice BASIC
Oracle 11
Oracle 8
Oz
PARI/GP
PCRE
PHP
PHP Brief
PL/I
PL/SQL
POV-Ray
ParaSail
Pascal
Pawn
Per
Perl
Perl 6
Phix
Pic 16
Pike
Pixel Bender
PostScript
PostgreSQL
PowerBuilder
PowerShell
ProFTPd
Progress
Prolog
Properties
ProvideX
Puppet
PureBasic
PyCon
Python
Python for S60
QBasic
QML
R
RBScript
REBOL
REG
RPM Spec
Racket
Rails
Rexx
Robots
Roff Manpage
Ruby
Ruby Gnuplot
Rust
SAS
SCL
SPARK
SPARQL
SQF
SQL
SSH Config
Scala
Scheme
Scilab
SdlBasic
Smalltalk
Smarty
StandardML
StoneScript
SuperCollider
Swift
SystemVerilog
T-SQL
TCL
TeXgraph
Tera Term
TypeScript
TypoScript
UPC
Unicon
UnrealScript
Urbi
VB.NET
VBScript
VHDL
VIM
Vala
Vedit
VeriLog
Visual Pro Log
VisualBasic
VisualFoxPro
WHOIS
WhiteSpace
Winbatch
XBasic
XML
XPP
Xojo
Xorg Config
YAML
YARA
Z80 Assembler
ZXBasic
autoconf
jQuery
mIRC
newLISP
q/kdb+
thinBasic
Paste Expiration:
Never
Burn after read
10 Minutes
1 Hour
1 Day
1 Week
2 Weeks
1 Month
6 Months
1 Year
Paste Exposure:
Public
Unlisted
Private
Folder:
(members only)
Password
NEW
Enabled
Disabled
Burn after read
NEW
Paste Name / Title:
Create New Paste
Hello
Guest
Sign Up
or
Login
Sign in with Facebook
Sign in with Twitter
Sign in with Google
You are currently not logged in, this means you can not edit or delete anything you paste.
Sign Up
or
Login
Public Pastes
Untitled
JSON | 1 hour ago | 45.87 KB
Amazon Product: 160GB MP3 Player with Bluetoo...
JSON | 2 hours ago | 9.16 KB
Untitled
JSON | 3 hours ago | 45.65 KB
Looks_Patchy.py
Python | 4 hours ago | 7.10 KB
Untitled
C++ | 4 hours ago | 1.08 KB
dom.rab
C | 4 hours ago | 0.53 KB
ToanBreak Violence District Killer Script
Lua | 4 hours ago | 8.64 KB
Polymorphism
Java | 5 hours ago | 3.83 KB
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the
Cookies Policy
.
OK, I Understand
Not a member of Pastebin yet?
Sign Up
, it unlocks many cool features!