Ir ao conteúdo

Posts recomendados

Postado

Boa tarde Pessoal,

 

Sou novo no fórum, se eu estiver postando no lugar errado ou de forma errada já me adianto e peço desculpas, mas estou tendo dificuldades em fazer funcionar o meu código.

Sou novato com Java, estou fazendo um "robô" que pesquisa o numero da planilha em um programa que roda na web, e de lá copio as informações de contato para a planilha, tudo usando o robot.

Mas preciso fazer uma verificação se o numero que copiou é igual ao numero da pesquisa, eu já consegui ler a planilha e pegar o valor da célula, mas o valor da verificação(as2) não atualiza quando eu rodo novamente.Vou colar o código e o anexo para melhor entender. O código roda com o Excel aberto. No começo simula um mouse e um teclado, e após isso eu "abro" o excel pelo java para conferir.

 

        

 
import java.awt.AWTException;
import java.awt.Robot;
import java.awt.event.InputEvent;
import java.awt.event.KeyEvent;
import java.io.File;
import java.io.IOException;
import jxl.Cell; 
import jxl.Sheet; 
import jxl.Workbook; 
import jxl.read.biff.BiffException;

public class Roboc {

  public static String x;
  public static void main(String[] args) throws IOException, BiffException {
    try {
    } catch (Exception e) {
    }
    try {
      // Instanciamos a classe robots, para poder usar seus metodos..
      Robot robot = new Robot();

      int x = 5;

      // Declarando a variável que controlara o while.
      int loop = 1;

      // Equanto o valor de loop for menor que x faça
      while (loop <= (x)) {

        // move o mouse até a planilha
        robot.mouseMove(1200, 280);
        // clica na planilha
        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(10); // delay
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(10);

        // copia
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_C);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_C);
        robot.delay(10);

        robot.mouseMove(240, 60);

        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(10); // delay
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(100);

        robot.mouseMove(250, 195);
        robot.delay(10);

        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(10); // delay
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(100);

        // cola
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_V);
        robot.delay(10);


        robot.keyPress(KeyEvent.VK_ENTER);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_ENTER);
        robot.delay(1000);

        robot.mouseMove(278, 377);

        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(10); // delay
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(100);

        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_C);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_C);
        robot.delay(10);

        robot.mouseMove(1200, 280);


        robot.mousePress(InputEvent.BUTTON1_MASK);
        robot.delay(10); // delay
        robot.mouseRelease(InputEvent.BUTTON1_MASK);
        robot.delay(500);

        robot.keyPress(KeyEvent.VK_RIGHT);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_RIGHT);
        robot.delay(100);


        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_V);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_V);

        robot.delay(10);
        robot.keyPress(KeyEvent.VK_CONTROL);
        robot.keyPress(KeyEvent.VK_B);
        robot.delay(10);
        robot.keyRelease(KeyEvent.VK_CONTROL);
        robot.keyRelease(KeyEvent.VK_B);

        //aqui eu abro a planilha e verifico se atualizou o valor
        File fiz = new File("C:\\Users\\Joao\\Desktop\\teste.xls");
        Workbook workbook = Workbook.getWorkbook(fiz);
        Sheet  sheet =  workbook.getSheet("primeiro");						
        Cell celula1 = sheet.getCell(1, 1);
        String as2 = celula1.getContents();
        //aqui deveria retornar o valor atualizado, mas me retorna o primeiro valor
        System.out.println("Coluna 2: " + as2);
        workbook.close();	

        loop++;
      }
    } catch (AWTException e) {
      e.printStackTrace();
    }
  }
public static String getX() {
  return x;
}

public static void setX(String x) {
  Roboc.x = x;
}
}

      

 

 

 

Antes de Executar.jpg

Após Executar.png

  • 2 meses depois...
Postado

Resolvi esse problema importando os dados do excel para uma matriz.

 

			File fiz = new File("C:\\senha\\senhas.xls");
			Workbook workbook = Workbook.getWorkbook(fiz);

			Sheet sheet = workbook.getSheet("gefi");

			int row = sheet.getRows();
			int col = sheet.getColumns();
			String[][] matriz = new String[row][col];
			for (int j = 0; j < col; j++) {
				for (int i = 0; i < row; i++) {
					Cell celula = sheet.getCell(j, i);
					String as2 = celula.getContents();

					matriz[i][j] = as2;

				}
			}

 

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!