viernes, 23 de septiembre de 2016

Modificar un excel o habrir un excel en java

1. Instalacion


Download the Java Excel library from the webpage http://jexcelapi.sourceforge.net/

To use this library in your Java program add the lib jxl.jar to your classpath in your project. See Changing classpath in Eclipse.

2. Crear una hoja en excel


Create a new Java project called de.vogella.java.excel. Create the de.vogella.java.excel.writer package and the following class.




package writer;
import java.io.File;
import java.io.IOException;
import java.util.Locale;
import jxl.CellView;
import jxl.Workbook;
import jxl.WorkbookSettings;
import jxl.format.UnderlineStyle;
import jxl.write.Formula;
import jxl.write.Label;
import jxl.write.Number;
import jxl.write.WritableCellFormat;
import jxl.write.WritableFont;
import jxl.write.WritableSheet;
import jxl.write.WritableWorkbook;
import jxl.write.WriteException;
import jxl.write.biff.RowsExceededException;

public class WriteExcel {
  private WritableCellFormat timesBoldUnderline;
  private WritableCellFormat times;
  private String inputFile;

public void setOutputFile(String inputFile) {
  this.inputFile = inputFile;
  }
  public void write() throws IOException, WriteException {
    File file = new File(inputFile);
    WorkbookSettings wbSettings = new WorkbookSettings();
    wbSettings.setLocale(new Locale("en", "EN"));
    WritableWorkbook workbook = Workbook.createWorkbook(file, wbSettings);
    workbook.createSheet("Report", 0);
    WritableSheet excelSheet = workbook.getSheet(0);
    createLabel(excelSheet);
    createContent(excelSheet);
    workbook.write();
    workbook.close();
  }
  private void createLabel(WritableSheet sheet)
      throws WriteException {
    // Lets create a times font
    WritableFont times10pt = new WritableFont(WritableFont.TIMES, 10);
    // Define the cell format
    times = new WritableCellFormat(times10pt);
    // Lets automatically wrap the cells
    times.setWrap(true);
    // create create a bold font with unterlines
    WritableFont times10ptBoldUnderline = new WritableFont(WritableFont.TIMES, 10, WritableFont.BOLD, false,
        UnderlineStyle.SINGLE);
    timesBoldUnderline = new WritableCellFormat(times10ptBoldUnderline);
    // Lets automatically wrap the cells
    timesBoldUnderline.setWrap(true);
    CellView cv = new CellView();
    cv.setFormat(times);
    cv.setFormat(timesBoldUnderline);
    cv.setAutosize(true);
    // Write a few headers
    addCaption(sheet, 0, 0, "Header 1");
    addCaption(sheet, 1, 0, "This is another header");
 
  }
  private void createContent(WritableSheet sheet) throws WriteException,
      RowsExceededException {
    // Write a few number
    for (int i = 1; i < 10; i++) {
      // First column
      addNumber(sheet, 0, i, i + 10);
      // Second column
      addNumber(sheet, 1, i, i * i);
    }
    // Lets calculate the sum of it
    StringBuffer buf = new StringBuffer();
    buf.append("SUM(A2:A10)");
    Formula f = new Formula(0, 10, buf.toString());
    sheet.addCell(f);
    buf = new StringBuffer();
    buf.append("SUM(B2:B10)");
    f = new Formula(1, 10, buf.toString());
    sheet.addCell(f);
    // now a bit of text
    for (int i = 12; i < 20; i++) {
      // First column
      addLabel(sheet, 0, i, "Boring text " + i);
      // Second column
      addLabel(sheet, 1, i, "Another text");
    }
  }
  private void addCaption(WritableSheet sheet, int column, int row, String s)
      throws RowsExceededException, WriteException {
    Label label;
    label = new Label(column, row, s, timesBoldUnderline);
    sheet.addCell(label);
  }
  private void addNumber(WritableSheet sheet, int column, int row,
      Integer integer) throws WriteException, RowsExceededException {
    Number number;
    number = new Number(column, row, integer, times);
    sheet.addCell(number);
  }
  private void addLabel(WritableSheet sheet, int column, int row, String s)
      throws WriteException, RowsExceededException {
    Label label;
    label = new Label(column, row, s, times);
    sheet.addCell(label);
  }
  public static void main(String[] args) throws WriteException, IOException {
    WriteExcel test = new WriteExcel();
    test.setOutputFile("c:/temp/lars.xls");
    test.write();
    System.out
        .println("Please check the result file under c:/temp/lars.xls ");
  }
}  

I assume that the code is pretty much self-explaining. I tried to add lots of comments to make it easier to understand.For more complex examples have a look at the excellent documentation of the Java Excel API which is also part of the distribution.

3. Read an existing Excel Spreadsheet


Reuse the project "de.vogella.java.excel". Create a package "de.vogella.java.excelreader" and the following class "ReadExcel".


package reader;
import java.io.File;
import java.io.IOException;
import jxl.Cell;
import jxl.CellType;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;
public class ReadExcel {
  private String inputFile;
  public void setInputFile(String inputFile) {
    this.inputFile = inputFile;
  }
  public void read() throws IOException  {
    File inputWorkbook = new File(inputFile);
    Workbook w;
    try {
      w = Workbook.getWorkbook(inputWorkbook);
      // Get the first sheet
      Sheet sheet = w.getSheet(0);
      // Loop over first 10 column and lines
      for (int j = 0; j < sheet.getColumns(); j++) {
        for (int i = 0; i < sheet.getRows(); i++) {
          Cell cell = sheet.getCell(j, i);
          CellType type = cell.getType();
          if (type == CellType.LABEL) {
            System.out.println("I got a label "
                + cell.getContents());
          }
          if (type == CellType.NUMBER) {
            System.out.println("I got a number "
                + cell.getContents());
          }
        }
      }
    } catch (BiffException e) {
      e.printStackTrace();
    }
  }
  public static void main(String[] args) throws IOException {
    ReadExcel test = new ReadExcel();
    test.setInputFile("c:/temp/lars.xls");
    test.read();
  }

Create an excel spreadsheet and save it somewhere, e.g. "c:/temp/lars.xls".



jueves, 22 de septiembre de 2016

Download JDBC SQL SERVER 2012


Go to Services window in Netbeans. List Drivers node. If on the list it isn’t SQL JDBC driver you must download it.
u01
Go to http://www.microsoft.com/en-gb/download/details.aspx?id=11774  website.
u02Click the Download button. Then click the exe file.
u03
u04I download this file into jdbc folder.
u05
Then you must any zip program unzip this file. Click the Browser button.
u06
Set path for jdbc files. I set D isc.
u07
Click the Unzip button. You see jdbc4.jar file in sqljdbc_4.0/enu folder.
u08
Close unzip program, clicking the Close button.
u09In this step you may go to Services window. Right click the Drivers node and choose New Driver.
u10You see empty New JDBC Driver. Click the Add button.
u11Select downloading sqljdbc4.jar driver.
u12Click the Open button. In Name field write Microsoft SQL Server 2012 and click the OK button.
u13On the list of drivers you see SQL Server driver.
u14

Crear conexion a la base de datos net beans

Requerimientos:


    Espero que usted está familiarizado con SQL y los conceptos básicos de Java. Si usted no sabe lo que es JDBC, se puede ver en:

http://en.wikipedia.org/wiki/Java_Database_Connectivity

Downloading JDBC Driver.


Para este artículo vamos a utilizar la versión más fresca de JDBC proporcionado por Microsoft:Microsoft SQL Server JDBC Driver 3.0 (sqljdbc_3.0.1301.101_enu.exe ). Que puedes descargar desde:

http://www.microsoft.com/downloads/details.aspx?FamilyID=%20a737000d-68d0-4531-b65d-da0f2a735707&displaylang=en

Ejemeplo en ingles de descarga JDBC

El registro de Controlador "Driver" y el establecimiento de la conexión.



  • Despues de descargar y extraer los archivos de JDB, inicializas el IDE de NetBeans.
  • Hacer clic en la pestaña de Presentaciones "Services tab".
  • Hacer clic sobre controladores "Drivers" y seleccionar la opcion de nuevo controlador "New Driver".







  • Buscar la direccion en donde se descomprimieron los archivos de JDBC, y seleccionarlo.

    • observaras que automaticamente al momento de seleccionar el controlador, el tipo de clase del controlador es: com.microsoft.sqlserver.jdbc.SQLServerDriver
    • Hacer OK.



    Establishing connection:


    • Si quieres conectarte con este modo que ahora debe hacer clic en Bases de datos y seleccione Nueva conexión. 
    • En la lista desplegable con Driver name seleccione Microsoft SQL Server. 
    • Mientras que intenta conectarse a su tipo de servidor local como nombre de host -> localhost, Base de datos -> basedatos, nombre de usuario -> yourSqlUser, contraseña -> UserPassword y haga clic en OK. En la ficha Avanzada seleccione DBO esquema (DBO o si no es visible seleccione db_owner).













    Que es un JDBC

    Que es un JDBC

    Java Database Connectivity (JDBC) es una interfaz de programación de aplicaciones (API) para el lenguaje de programación Java, que define la forma en que un cliente puede acceder a una base de datos. Es parte de la plataforma Java Standard Edition, de Oracle Corporation. Proporciona métodos para consultar y actualizar datos en una base de datos, y se orienta hacia las bases de datos relacionales. Un puente JDBC-to-ODBC permite conexiones a cualquier fuente de datos ODBC accesible en el entorno de acogida máquina virtual Java (JVM).

    viernes, 9 de septiembre de 2016

    buscar columnas en todas las tablas Sql Server

    Me vi en la necesidad de buscar en todas las tablas de una base de datos por un comodin ya que no conocia bien el modelo de la base de datos.
    aqui les dejo el sql.

    SELECT  sysobjects.name AS table_name, syscolumns.name AS column_name,
    systypes.name AS datatype, syscolumns.LENGTH AS LENGTH
    FROM       sysobjects INNER JOIN
    syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
    systypes ON syscolumns.xtype = systypes.xtype
    WHERE     (sysobjects.xtype = 'U')
    and (UPPER(syscolumns.name) like upper('%myFieldName%'))
    ORDER BY sysobjects.name, syscolumns.colid


    Solo tienen que cambiar donde dice "myFieldName" por el nombre de la columna que desean buscar.

    miércoles, 7 de septiembre de 2016

    Crear Pool Conexiones en servidor Glassfish

    En este tutorial se explicará como crear un pools de conexiones en un servidor Glassfish.

    Glassfish tiene un mecanismo para tratar los pools de conexiones JDBC; Tiene un pool de conexiones, y después un JDBC Resources. 
    1. Para crear el pool de conexiones jdbc, entramos primero a la consola de administración del servidor.

    2. Nos dirigimos a Recursos>JDBC>Pools de Conexiones JDBC y seleccionamos "New"JDBC Connection Pools.

    3. Le damos el nombre del pool de conexiones a relacionar, hay que tener en cuenta que si va enlazar con una aplicación empresarial o web en netbeans, recomiendo colocarle el mismo nombre que le colocó al pool que creó en netbeans.
    pool name : Aquí colocamos el nombre del pool, compuesto por letras y números y sin espacios.
    Resource Type : Aquí seleccionamos el  tipo de recurso. Por lo general es java.sql.DataSource.
    Database Driver Vendor: En esta opción colocamos nuestro proveedor de base de datos, eso depende de cual estés utilizando o cual necesites para poner a funcionar el pool. En mi caso escogeré Oracle, ya que mi base de datos esta en PL/SQL.

    Lo demás lo dejamos por defecto y damos clic en el boton Next.


    4.  En el segundo paso solo procedemos a ingresar los siguientes parámetros, estos son por criterio, es decir, según lo que tu necesites.
    Initial and Minimum Pool Size:  Número mínimo e inicial de conexiones mantenidas
    Maximum Pool Size: Número máximo de conexiones que se pueden crear para las peticiones.
    Pool Resize Quantity: El número de conexiones que se elimina cuando el tiempo de espera expira.
    Idle Timeout: El tiempo máximo que la conexión puede permanecer inactiva.
    Max Wait Time: tiempo máximo de espera.
    En mi caso todo lo deje por defecto. 

    Ahora viene lo más importante del pool de conexiones y aquí deben tener claro los siguientes criterios:
    DataBaseName: Nombre de la base de datos.
    DataSourceName: OracleDataSource.
    NetworkProtocol: Protocolo de red para nuestro caso tcp.
    Password: clave de la base de datos o esquema.
    User: usuario de la base de datos o esquema.
    PortNumber: puerto por el que se realizara la conexión a la base de datos, en mi caso estoy manejando Oracle y por defecto el puerto 1521.
    URL: jdbc:oracle:thin:@11.9.9.19:1521:COSTOS


    ahora tenemos nuestro pool de conexiones configurado. Para verficar el estado del mismo realizaremos un Ping para ver si la conexion se ha establecido.
    Se ha realizado el ping exitosamente, es decir, ya podemos utilizar nuestro pool. 
    Hay que tener el cuenta que el pool puede generar excepciones si no tiene el driver del gestor de base de datos, ya sea Oracle, Sql-Server, etc, y el ping no sera exitoso. 

    Estás pueden ser algunas de las excepciones que genera el servidor.

    Caused by: java.lang.ClassNotFoundException: oracle.sql.LdxLib 
    at com.sun.enterprise.loader.ASURLClassLoader.findClassData(ASURLClassLoader.java:708) 
    at com.sun.enterprise.loader.ASURLClassLoader.findClass(ASURLClassLoader.java:626)

    java.lang.ClassNotFoundException: oracle.jdbc.pool.OracleDataSource
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:270)



    Luego de crear el pool de conexiones de debe crear el recurso JDBC que proporciona a las aplicaciones las conexiones a la base de datos.

    Los pasos a seguir son los siguientes:
    Ubicar "Recursos de JDBC"















    Seleccionar nuevo y se mostrará la siguiente pantalla:
    Nombre del JDNI, el cual se va a utilizar para gestionar las conexiones con las base de datos.
    Nombre del pool, se selecciona el pool creado anteriormente.


    Con estos pasos ya se tendría creado el pool de conexiones y el recurso que permite enlazar la aplicación con la bd.

    martes, 6 de septiembre de 2016

    apache cordova failed to find android_home

    Error al construir aplicación por linea de comando de apache cordova:

    Cordova build android



    Si tienes este mismo problema, es por que te falta instalar el android studio  :D