List of usage examples for org.apache.poi.hssf.usermodel HSSFFont setCharSet
public void setCharSet(byte charset)
From source file:com.eryansky.core.excelTools.ExcelUtils.java
License:Apache License
public static void copyCellStyle(HSSFWorkbook destwb, HSSFCellStyle dest, HSSFWorkbook srcwb, HSSFCellStyle src) {//from w w w . jav a2 s. c o m if (src == null || dest == null) return; dest.setAlignment(src.getAlignment()); dest.setBorderBottom(src.getBorderBottom()); dest.setBorderLeft(src.getBorderLeft()); dest.setBorderRight(src.getBorderRight()); dest.setBorderTop(src.getBorderTop()); dest.setBottomBorderColor(findColor(src.getBottomBorderColor(), srcwb, destwb)); dest.setDataFormat( destwb.createDataFormat().getFormat(srcwb.createDataFormat().getFormat(src.getDataFormat()))); dest.setFillPattern(src.getFillPattern()); dest.setFillForegroundColor(findColor(src.getFillForegroundColor(), srcwb, destwb)); dest.setFillBackgroundColor(findColor(src.getFillBackgroundColor(), srcwb, destwb)); dest.setHidden(src.getHidden()); dest.setIndention(src.getIndention()); dest.setLeftBorderColor(findColor(src.getLeftBorderColor(), srcwb, destwb)); dest.setLocked(src.getLocked()); dest.setRightBorderColor(findColor(src.getRightBorderColor(), srcwb, destwb)); dest.setRotation(src.getRotation()); dest.setTopBorderColor(findColor(src.getTopBorderColor(), srcwb, destwb)); dest.setVerticalAlignment(src.getVerticalAlignment()); dest.setWrapText(src.getWrapText()); HSSFFont f = srcwb.getFontAt(src.getFontIndex()); HSSFFont nf = findFont(f, srcwb, destwb); if (nf == null) { nf = destwb.createFont(); nf.setBoldweight(f.getBoldweight()); nf.setCharSet(f.getCharSet()); nf.setColor(findColor(f.getColor(), srcwb, destwb)); nf.setFontHeight(f.getFontHeight()); nf.setFontHeightInPoints(f.getFontHeightInPoints()); nf.setFontName(f.getFontName()); nf.setItalic(f.getItalic()); nf.setStrikeout(f.getStrikeout()); nf.setTypeOffset(f.getTypeOffset()); nf.setUnderline(f.getUnderline()); } dest.setFont(nf); }
From source file:com.haulmont.yarg.formatters.impl.xls.hints.CustomCellStyleHint.java
License:Apache License
@Override public void apply() { for (DataObject dataObject : data) { HSSFCell templateCell = dataObject.templateCell; HSSFCell resultCell = dataObject.resultCell; BandData bandData = dataObject.bandData; HSSFWorkbook resultWorkbook = resultCell.getSheet().getWorkbook(); HSSFWorkbook templateWorkbook = templateCell.getSheet().getWorkbook(); String templateCellValue = templateCell.getStringCellValue(); Matcher matcher = pattern.matcher(templateCellValue); if (matcher.find()) { String paramName = matcher.group(1); String styleName = (String) bandData.getParameterValue(paramName); if (styleName == null) continue; HSSFCellStyle cellStyle = styleCache.getStyleByName(styleName); if (cellStyle == null) continue; HSSFCellStyle resultStyle = styleCache.getNamedCachedStyle(cellStyle); if (resultStyle == null) { HSSFCellStyle newStyle = resultWorkbook.createCellStyle(); // color newStyle.setFillBackgroundColor(cellStyle.getFillBackgroundColor()); newStyle.setFillForegroundColor(cellStyle.getFillForegroundColor()); newStyle.setFillPattern(cellStyle.getFillPattern()); // borders newStyle.setBorderLeft(cellStyle.getBorderLeft()); newStyle.setBorderRight(cellStyle.getBorderRight()); newStyle.setBorderTop(cellStyle.getBorderTop()); newStyle.setBorderBottom(cellStyle.getBorderBottom()); // border colors newStyle.setLeftBorderColor(cellStyle.getLeftBorderColor()); newStyle.setRightBorderColor(cellStyle.getRightBorderColor()); newStyle.setBottomBorderColor(cellStyle.getBottomBorderColor()); newStyle.setTopBorderColor(cellStyle.getTopBorderColor()); // alignment newStyle.setAlignment(cellStyle.getAlignment()); newStyle.setVerticalAlignment(cellStyle.getVerticalAlignment()); // misc DataFormat dataFormat = resultWorkbook.getCreationHelper().createDataFormat(); newStyle.setDataFormat(dataFormat.getFormat(cellStyle.getDataFormatString())); newStyle.setHidden(cellStyle.getHidden()); newStyle.setLocked(cellStyle.getLocked()); newStyle.setIndention(cellStyle.getIndention()); newStyle.setRotation(cellStyle.getRotation()); newStyle.setWrapText(cellStyle.getWrapText()); // font HSSFFont cellFont = cellStyle.getFont(templateWorkbook); HSSFFont newFont = fontCache.getFontByTemplate(cellFont); if (newFont == null) { newFont = resultWorkbook.createFont(); newFont.setFontName(cellFont.getFontName()); newFont.setItalic(cellFont.getItalic()); newFont.setStrikeout(cellFont.getStrikeout()); newFont.setTypeOffset(cellFont.getTypeOffset()); newFont.setBoldweight(cellFont.getBoldweight()); newFont.setCharSet(cellFont.getCharSet()); newFont.setColor(cellFont.getColor()); newFont.setUnderline(cellFont.getUnderline()); newFont.setFontHeight(cellFont.getFontHeight()); newFont.setFontHeightInPoints(cellFont.getFontHeightInPoints()); fontCache.addCachedFont(cellFont, newFont); }/*from w w w .j a v a 2 s . com*/ newStyle.setFont(newFont); resultStyle = newStyle; styleCache.addCachedNamedStyle(cellStyle, resultStyle); } fixNeighbourCellBorders(cellStyle, resultCell); resultCell.setCellStyle(resultStyle); Sheet sheet = resultCell.getSheet(); for (int i = 0; i < sheet.getNumMergedRegions(); i++) { CellRangeAddress mergedRegion = sheet.getMergedRegion(i); if (mergedRegion.isInRange(resultCell.getRowIndex(), resultCell.getColumnIndex())) { int firstRow = mergedRegion.getFirstRow(); int lastRow = mergedRegion.getLastRow(); int firstCol = mergedRegion.getFirstColumn(); int lastCol = mergedRegion.getLastColumn(); for (int row = firstRow; row <= lastRow; row++) for (int col = firstCol; col <= lastCol; col++) sheet.getRow(row).getCell(col).setCellStyle(resultStyle); // cell includes only in one merged region break; } } } } }
From source file:servlets.ReportesCSV.java
@Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { Connection con = null;/* w w w . j a v a 2 s . com*/ PreparedStatement ps = null; ResultSet rs = null; String fechaInicial = request.getParameter("fechaInicial"); String fechaFinal = request.getParameter("fechaFinal"); String url = getServletContext().getRealPath("/"); String identificacion = request.getParameter("identificacion"); String producto = request.getParameter("producto"); String cotizacion = request.getParameter("cotizacion"); int sede = Integer.parseInt(request.getParameter("sede")); String tipo = request.getParameter("tipo"); String query = null; try { con = DBConnector.getInstance().getConnection(); switch (tipo) { case "rotacion": query = "SELECT p.codigoInterno,p.nomProducto,sum(cantidad),mim.nombreMovimiento,p.costo " + "FROM kalamarypos.inv_movimiento m " + "inner join inv_movimiento_detalle md on md.inv_movimiento_numDoc = m.numDoc " + "inner join cfg_mov_inventario_detalle mi on mi.idMovInventarioDetalle = m.cfg_mov_inventario_detalle_idMovInventarioDetalle " + "inner join cfg_mov_inventario_maestro mim on mim.idMovInventarioMaestro = mi.cfg_mov_inventario_maestro_idMovInventarioMaestro " + "inner join cfg_producto p on p.idProducto = md.cfg_producto_IdProducto " + "where fecha between ? and ADDDATE(?, INTERVAL 13 DAY) " + "and cfg_empresasede_idSede = ? " + "group by p.codProducto,p.nomProducto,mim.nombreMovimiento " + "order by 3 desc"; break; case "vc": query = "SELECT f.fecCrea,d.prefijoDoc, fc.fac_documentosmaster_numDocumento,ifnull(di.valorImpuesto,0) iva,f.subtotal-f.descuento as subtotal,f.total, " + "concat(ti.abreviatura,' ',c.numDoc,' ',c.nom1Cliente,' ',c.nom2Cliente,' ',c.apellido1,' ',c.apellido2) as nombre " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster f on fc.fac_documentosmaster_numDocumento = f.numDocumento " + "inner join cfg_cliente c on c.idCliente = fc.cfg_cliente_idCliente " + "inner join cfg_documento d on d.cfg_empresasede_idSede = f.cfg_empresasede_idSede " + "inner join cfg_tipoidentificacion ti on ti.id = c.cfg_tipoidentificacion_id " + "left join fac_documentoimpuesto di on di.fac_documentosmaster_numDocumento = fc.fac_documentosmaster_numDocumento and di.porcentajeImpuesto=16 and di.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "where f.estado!='CANCELADA' and f.estado!='ANULADA' " + "and f.cfg_empresasede_idSede=? " + "and d.codDocumento !=6 " + "and f.cfg_documento_idDoc =d.idDoc "; if (!identificacion.equals("0")) { query = query + " and c.numDoc = ? "; } query = query + " order by 1 desc"; break; case "productosVendidos": query = "SELECT c.nombreCategoria, " + " r.nombreReferencia, " + " m.nombreMarca, " + " p.codigoInterno, " + " p.nomProducto, " + " sum(fd.cantidad) as total, " + " max(f.fecCrea) as maxFeCrea " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster f on fc.fac_documentosmaster_numDocumento = f.numDocumento " + "inner join cfg_documento d on d.cfg_empresasede_idSede = f.cfg_empresasede_idSede " + "inner join fac_documentodetalle fd on fd.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "inner join cfg_producto p on p.idProducto = fd.cfg_producto_idProducto " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "where f.estado!='CANCELADA' and f.estado!='ANULADA' " + "and f.cfg_empresasede_idSede=? " + "and fd.fac_documentosmaster_numDocumento=f.numDocumento " + "and f.cfg_documento_idDoc =d.idDoc " + "and f.fecCrea between ? and ADDDATE(?, INTERVAL 1 DAY) " + "and fd.fac_documentosmaster_numDocumento = f.numDocumento " + "group by fd.cfg_producto_idProducto " + "order by 6 desc "; break;//productosVendidos case "ventasVendedores": query = "SELECT f.fecCrea,d.prefijoDoc, fc.fac_documentosmaster_numDocumento,ifnull(di.valorImpuesto,0) iva,f.subtotal-f.descuento as subtotal,f.total, " + "concat('CC ',s.numDoc,' ',s.nom1Usuario,' ',s.nom2Usuario,' ',s.apellido1,' ',s.apellido2) as nombre " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster f on fc.fac_documentosmaster_numDocumento = f.numDocumento " + "inner join cfg_documento d on d.cfg_empresasede_idSede = f.cfg_empresasede_idSede " + "inner join seg_usuario s on s.idUsuario = f.seg_usuario_idUsuario1 " + " left join fac_documentoimpuesto di on di.fac_documentosmaster_numDocumento = fc.fac_documentosmaster_numDocumento and di.porcentajeImpuesto=16 and di.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "where f.estado!='CANCELADA' and f.estado!='ANULADA' " + "and f.cfg_empresasede_idSede=? " + "and f.fecCrea between ? and ADDDATE(?, INTERVAL 13 DAY) " + "and f.cfg_documento_idDoc =d.idDoc " + "and d.codDocumento !=6 " + "and s.cfg_rol_idrol=3 "; if (!identificacion.equals("0")) { if (!identificacion.equals("")) { query = query + "and s.numDoc = ? "; } } query = query + " order by 1 desc"; break;//Ventas vendedores case "productosA": query = "select c.nombreCategoria, " + " r.nombreReferencia, " + " m.nombreMarca, " + " p.codigoInterno, " + " p.nomProducto, " + " p.precio " + "from cfg_producto p " + "inner join cfg_empresasede s on s.cfg_empresa_idEmpresa = p.cfg_empresa_idEmpresa " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "where s.idSede =? "; if (producto != null) { if (!producto.equals("")) { query = query + "and p.codigoInterno= ? "; } } break;//Productos case "servicios": query = "SELECT c.nombreCategoria, " + " r.nombreReferencia, " + " m.nombreMarca, " + " p.codigoInterno, " + " p.codBarProducto , " + " p.nomProducto, " + " p.costo, " + " p.utilidad, " + " p.precio, " + " p.fecCrea " + "FROM " + " cfg_producto p " + "inner join cfg_empresasede s on s.cfg_empresa_idEmpresa = p.cfg_empresa_idEmpresa " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "where p.esServicio=1 " + "and s.idSede =? "; if (producto != null) { if (!producto.equals("")) { query = query + "and p.codigoInterno= ? "; } } query = query + "order by 1 desc"; break;//Servicios case "stock": query = "SELECT c.nombreCategoria, " + " r.nombreReferencia, " + " m.nombreMarca, " + " p.codigoInterno, " + " p.nomProducto, " + " co.existencia " + "FROM kalamarypos.cfg_producto p " + "inner join inv_consolidado co on co.cfg_producto_idProducto = p.idProducto " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "where co.cfg_empresasede_idSede=? "; if (producto != null) { if (!producto.equals("")) { query = query + "and p.codigoInterno= ? "; } } query = query + " order by co.existencia desc"; break;//stock case "productoClientes": query = "SELECT concat(ti.abreviatura,' ',c.numDoc,' ',c.nom1Cliente,' ',c.nom2Cliente,' ',c.apellido1,' ',c.apellido2) as nombre, " + "fc.cfg_cliente_idCliente,fc.fac_documentosmaster_numDocumento,sum(cantidad) as total,fd.cfg_producto_idProducto, " + "max(f.fecCrea),concat(ca.nombreCategoria,' ',r.nombreReferencia,' ',m.nombreMarca,' ',p.codigoInterno,' ',p.nomProducto) as producto " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster f on fc.fac_documentosmaster_numDocumento = f.numDocumento " + "inner join fac_documentodetalle fd on fd.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "inner join cfg_cliente c on c.idCliente = fc.cfg_cliente_idCliente " + "inner join cfg_documento d on d.cfg_empresasede_idSede = f.cfg_empresasede_idSede " + "inner join cfg_tipoidentificacion ti on ti.id = c.cfg_tipoidentificacion_id " + "inner join cfg_producto p on p.idProducto = fd.cfg_producto_idProducto " + "inner join cfg_categoriaproducto ca on ca.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "where f.estado!='CANCELADA' and f.estado!='ANULADA' " + "and f.cfg_empresasede_idSede=? " + "and fd.fac_documentosmaster_numDocumento = f.numDocumento " + "and d.codDocumento =1 "; if (producto != null) { if (!producto.equals("")) { query = query + "and p.codigoInterno= ? "; } } query = query + " group by fd.cfg_producto_idProducto " + "order by 4 desc"; break;//productosClientes case "cotizacion": query = "SELECT p.codigoInterno, " + "p.nomProducto, " + "p.precio, " + "ifnull(di.valorImpuesto,0) as iva, " + "f.total, " + "concat(ti.abreviatura,' ',cl.numDoc,' ',cl.nom1Cliente,' ',cl.nom2Cliente,' ',cl.apellido1,' TELEFONO ',cl.tel1) as nombre, " + "concat('No Cotizacin:',' ',d.prefijoDoc,' ', fc.fac_documentosmaster_numDocumento) cotizacion, " + "f.fecCrea, concat('Vendedor:',s.nom1Usuario,' ',s.nom2Usuario,' ',s.apellido1,' ',s.apellido2) as vendedor " + " " + "FROM kalamarypos.fac_documentosmaster fc " + "inner join fac_documentosmaster f on fc.fac_documentosmaster_numDocumento = f.numDocumento " + "inner join fac_documentodetalle fd on fd.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "inner join cfg_cliente cl on cl.idCliente = fc.cfg_cliente_idCliente " + "inner join cfg_documento d on d.cfg_empresasede_idSede = f.cfg_empresasede_idSede " + "inner join cfg_producto p on p.idProducto = fd.cfg_producto_idProducto " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto m on m.idMarca = p.cfg_marcaproducto_idMarca " + "inner join cfg_tipoidentificacion ti on ti.id = cl.cfg_tipoidentificacion_id " + "inner join seg_usuario s on s.idUsuario = f.seg_usuario_idUsuario1 " + "left join fac_documentoimpuesto di on di.fac_documentosmaster_numDocumento = fc.fac_documentosmaster_numDocumento and di.porcentajeImpuesto=16 and di.fac_documentosmaster_cfg_documento_idDoc=f.cfg_documento_idDoc " + "where f.estado!='CANCELADA' and f.estado!='ANULADA' " + "and f.cfg_empresasede_idSede=? "; if (identificacion != null) { if (!identificacion.equals("")) query = query + "and cl.numDoc = ? "; } if (cotizacion != null) { if (!cotizacion.equals("")) query = query + "and fc.fac_documentosmaster_numDocumento = ? "; } query = query + " and d.codDocumento =6 " + "and fd.fac_documentosmaster_numDocumento=f.numDocumento " + "and f.cfg_documento_idDoc = d.idDoc " + "and s.cfg_rol_idrol=3"; break;//cotizacion case "vencimientosFacturas": query = "SELECT cc.numDoc, " + " concat(cc.nom1Cliente,' ',cc.nom2Cliente,' ',cc.apellido1,' ',cc.apellido2) cliente, " + " cc.tel1, " + " fc.valor, " + " fc.saldo, " + " fc.fecha_limite, " + " concat(d.prefijoDoc,' ',fd.numDocumento) documento " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster fd on fc.fac_documentosmaster_numDocumento = fd.numDocumento " + "inner join cfg_cliente cc on cc.idCliente = fc.cfg_cliente_idCliente " + "inner join cfg_documento d on d.cfg_empresasede_idSede = fd.cfg_empresasede_idSede " + " where fc.estado='PENDIENTE' " + "and fecha_limite<=ADDDATE(now(), INTERVAL 15 DAY) " + "and fd.cfg_documento_idDoc = fc.fac_documentosmaster_cfg_documento_idDoc " + "and d.codDocumento =1 " + "and fd.cfg_documento_idDoc =d.idDoc " + "and fd.cfg_empresasede_idSede=? " + "and fd.cfg_documento_idDoc = fc.fac_documentosmaster_cfg_documento_idDoc " + "order by fecha_limite"; break;//vencimiento factruas case "vencimientosSeparados": query = "SELECT cc.numDoc, " + " concat(cc.nom1Cliente,' ',cc.nom2Cliente,' ',cc.apellido1,' ',cc.apellido2) cliente, " + " cc.tel1, " + " fc.valor, " + " fc.saldo, " + " fc.fecha_limite, " + " concat(d.prefijoDoc,' ',fd.numDocumento) documento " + "FROM kalamarypos.fac_cartera_cliente fc " + "inner join fac_documentosmaster fd on fc.fac_documentosmaster_numDocumento = fd.numDocumento " + "inner join cfg_cliente cc on cc.idCliente = fc.cfg_cliente_idCliente " + "inner join cfg_documento d on d.cfg_empresasede_idSede = fd.cfg_empresasede_idSede " + " where fc.estado='PENDIENTE' " + "and fecha_limite<=ADDDATE(now(), INTERVAL 15 DAY) " + "and fd.cfg_documento_idDoc = fc.fac_documentosmaster_cfg_documento_idDoc " + "and d.codDocumento =7 " + "and fd.cfg_empresasede_idSede=? " + "and fd.cfg_documento_idDoc =d.idDoc " + "and fd.cfg_documento_idDoc = fc.fac_documentosmaster_cfg_documento_idDoc " + "order by fecha_limite"; break;//vencimientoSeparados case "productosSinRotacion": query = "SELECT c.nombreCategoria, " + " r.nombreReferencia, " + " ma.nombreMarca, " + " p.codigoInterno, " + " p.nomProducto, " + " max(m.fecha) fechaultimo " + " " + "FROM kalamarypos.inv_movimiento_detalle im " + "inner join inv_movimiento m on im.inv_movimiento_numDoc = m.numDoc " + "left join cfg_producto p on p.idProducto = im.cfg_producto_idProducto " + "inner join cfg_categoriaproducto c on c.idCategoria = p.cfg_categoriaproducto_idCategoria " + "inner join cfg_referenciaproducto r on r.idReferencia = p.cfg_referenciaproducto_idReferencia " + "inner join cfg_marcaproducto ma on ma.idMarca = p.cfg_marcaproducto_idMarca " + "where cfg_empresasede_idSede=? " + "group by im.cfg_producto_idProducto " + "having DATEDIFF(now(),max(m.fecha))>=90 " + "order by 6"; break;//productosSinRotacion } ps = con.prepareStatement(query); ps.clearParameters(); int indice = 1; switch (tipo) { case "rotacion": ps.setString(indice++, fechaInicial); ps.setString(indice++, fechaFinal); ps.setInt(indice++, sede); break; case "vc": ps.setInt(indice++, sede); if (!identificacion.equals("0")) { ps.setString(indice++, identificacion); } break; case "productosVendidos": ps.setInt(indice++, sede); ps.setString(indice++, fechaInicial); ps.setString(indice++, fechaFinal); break; case "ventasVendedores": ps.setInt(indice++, sede); ps.setString(indice++, fechaInicial); ps.setString(indice++, fechaFinal); if (!identificacion.equals("0")) { if (!identificacion.equals("")) ps.setString(indice++, identificacion); } break; case "productosA": ps.setInt(indice++, sede); if (producto != null) { if (!producto.equals("")) { ps.setString(indice++, producto); } } break;//Producros case "servicios": ps.setInt(indice++, sede); if (producto != null) { if (!producto.equals("")) { ps.setString(indice++, producto); } } break;//servicios case "stock": ps.setInt(indice++, sede); if (producto != null) { if (!producto.equals("")) { ps.setString(indice++, producto); } } break;//stock case "productoClientes": ps.setInt(indice++, sede); if (producto != null) { if (!producto.equals("")) { ps.setString(indice++, producto); } } break;//productoClientes case "cotizacion": ps.setInt(indice++, sede); if (identificacion != null) { if (!identificacion.equals("")) ps.setString(indice++, identificacion); } if (cotizacion != null) { if (!cotizacion.equals("")) ps.setString(indice++, cotizacion); } break; case "vencimientosFacturas": ps.setInt(indice++, sede); break; case "vencimientosSeparados": ps.setInt(indice++, sede); break; case "productosSinRotacion": ps.setInt(indice++, sede); break; } rs = ps.executeQuery(); Date fechaActual = new Date(); SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd"); SimpleDateFormat sd2 = new SimpleDateFormat("dd-MMM-yyyy"); String rutaArchivo = url + "/informes/reportes/"; String nombreArchivo = null; switch (tipo) { case "rotacion": nombreArchivo = "rotacionProducto_" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "vc": nombreArchivo = "ventasPorCliente_" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "productosVendidos": nombreArchivo = "productosVendidos" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "ventasVendedores": nombreArchivo = "ventasVendedores" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "productosA": nombreArchivo = "productos" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "servicios": nombreArchivo = "servicios" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "stock": nombreArchivo = "stock" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "productoClientes": nombreArchivo = "ventasProductosClientes" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "cotizacion": nombreArchivo = "cotizacion" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "vencimientosFacturas": nombreArchivo = "vencimientoFacturas" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "vencimientosSeparados": nombreArchivo = "vencimientoSeparados" + sd.format(fechaActual) + "_" + sede + ".xls"; break; case "productosSinRotacion": nombreArchivo = "productosSinRotacion" + sd.format(fechaActual) + "_" + sede + ".xls"; break; } rutaArchivo = rutaArchivo + nombreArchivo; File archivo1 = new File(rutaArchivo); if (archivo1.exists()) { archivo1.delete(); } archivo1.createNewFile(); HSSFWorkbook libro = new HSSFWorkbook(); HSSFCellStyle cellStyle = libro.createCellStyle(); HSSFFont font = libro.createFont(); font.setFontName(HSSFFont.FONT_ARIAL); font.setFontHeightInPoints((short) 10); font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD); font.setColor(HSSFColor.BLACK.index); font.setCharSet(HSSFFont.ANSI_CHARSET); cellStyle.setFont(font); /*Se inicializa el flujo de datos con el archivo xls*/ FileOutputStream archi = new FileOutputStream(rutaArchivo); Sheet hoja; Cell celda; Row fila; int i = 0; switch (tipo) { case "rotacion": hoja = libro.createSheet("Rotacin de Producto"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CODIGO PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("CANTIDAD MOVIMIENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("TIPO MOVIMIENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("COSTO UNITARIO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("COSTO TOTAL"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString(1)); celda = fila.createCell(1); celda.setCellValue(rs.getString(2)); celda = fila.createCell(2); celda.setCellValue(rs.getInt(3)); celda = fila.createCell(3); celda.setCellValue(rs.getString(4)); celda = fila.createCell(4); celda.setCellValue(rs.getDouble(5)); celda = fila.createCell(5); celda.setCellValue((rs.getDouble(5) * rs.getInt(3))); ////celda.getStringCellValue().getBytes(Charset.forName("UTF-8")); i = i + 1; } break; //En rotacin case "vc": hoja = libro.createSheet("Ventas por clientes"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("FECHA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("DOCUMENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("SUBTOTAL"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("IVA"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("COSTO TOTAL"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(sd2.format(rs.getDate(1))); celda = fila.createCell(1); celda.setCellValue(rs.getString(2) + " " + rs.getString(3)); celda = fila.createCell(2); celda.setCellValue(rs.getString(7)); celda = fila.createCell(3); celda.setCellValue(rs.getDouble(5)); celda = fila.createCell(4); celda.setCellValue(rs.getDouble(4)); celda = fila.createCell(5); celda.setCellValue(rs.getDouble(6)); i = i + 1; } break;//Ventas por cliente case "productosVendidos": hoja = libro.createSheet("Productos Vendidos"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CATEGORIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("REFERENCIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("MARCA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO INTERNO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("CANTIDAD VENDIDA"); celda.setCellStyle(cellStyle); celda = fila.createCell(6); celda.setCellValue("FECHA ULTIMA VENTA"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString(1)); celda = fila.createCell(1); celda.setCellValue(rs.getString(2)); celda = fila.createCell(2); celda.setCellValue(rs.getString(3)); celda = fila.createCell(3); celda.setCellValue(rs.getString(4)); celda = fila.createCell(4); celda.setCellValue(rs.getString(5)); celda = fila.createCell(5); celda.setCellValue(rs.getDouble(6)); celda = fila.createCell(6); celda.setCellValue(sd2.format(rs.getDate(7))); i = i + 1; } break;//Productos Vendidos case "ventasVendedores": hoja = libro.createSheet("Ventas Vendedores"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("FECHA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("VENDEDOR"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("DOCUMENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("SUBTOTAL"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("IVA"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("TOTAL"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(sd2.format(rs.getDate(1))); celda = fila.createCell(1); celda.setCellValue(rs.getString("nombre")); celda = fila.createCell(2); celda.setCellValue(rs.getString(2) + " " + rs.getString(3)); celda = fila.createCell(3); celda.setCellValue(rs.getDouble("subtotal")); celda = fila.createCell(4); celda.setCellValue(rs.getDouble("IVA")); celda = fila.createCell(5); celda.setCellValue(rs.getDouble("TOTAL")); i = i + 1; } break;//ventas vendedores case "productosA": hoja = libro.createSheet("Informe Productos"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CATEGORIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("REFERENCIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("MARCA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO INTERNO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("VALOR"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombreCategoria")); celda = fila.createCell(1); celda.setCellValue(rs.getString("nombreReferencia")); celda = fila.createCell(2); celda.setCellValue(rs.getString("nombreMarca")); celda = fila.createCell(3); celda.setCellValue(rs.getString("codigoInterno")); celda = fila.createCell(4); celda.setCellValue(rs.getString("nomProducto")); celda = fila.createCell(5); celda.setCellValue(rs.getDouble("PRECIO")); i = i + 1; } break;//productos case "servicios": hoja = libro.createSheet("Servicios"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CATEGORIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("REFERENCIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("MARCA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO INTERNO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("CODIGO DE BARRAS"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(6); celda.setCellValue("COSTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(7); celda.setCellValue("UTILIDAD"); celda.setCellStyle(cellStyle); celda = fila.createCell(8); celda.setCellValue("PRECIO"); celda.setCellStyle(cellStyle); celda = fila.createCell(9); celda.setCellValue("FECHA CREACION"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombreCategoria")); celda = fila.createCell(1); celda.setCellValue(rs.getString("nombreReferencia")); celda = fila.createCell(2); celda.setCellValue(rs.getString("nombreMarca")); celda = fila.createCell(3); celda.setCellValue(rs.getString("codigoInterno")); celda = fila.createCell(4); celda.setCellValue(rs.getString("codBarProducto")); celda = fila.createCell(5); celda.setCellValue(rs.getString("nomProducto")); celda = fila.createCell(6); celda.setCellValue(rs.getDouble("costo")); celda = fila.createCell(7); celda.setCellValue(rs.getDouble("utilidad")); celda = fila.createCell(8); celda.setCellValue(rs.getDouble("precio")); celda = fila.createCell(9); celda.setCellValue(sd2.format(rs.getDate("fecCrea"))); i = i + 1; } break;//Servicios case "stock": hoja = libro.createSheet("Stock"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CATEGORIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("REFERENCIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("MARCA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO INTERNO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("EXISTENCIA"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombreCategoria")); celda = fila.createCell(1); celda.setCellValue(rs.getString("nombreReferencia")); celda = fila.createCell(2); celda.setCellValue(rs.getString("nombreMarca")); celda = fila.createCell(3); celda.setCellValue(rs.getString("codigoInterno")); celda = fila.createCell(4); celda.setCellValue(rs.getString("nomProducto")); celda = fila.createCell(5); celda.setCellValue(rs.getLong("existencia")); i = i + 1; } break;//stock case "productoClientes": hoja = libro.createSheet("Ventas productos Clientes"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("CANTIDAD VENDIDA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("FECHA ULTIMA VENTA"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombre")); celda = fila.createCell(1); celda.setCellValue(rs.getString("producto")); celda = fila.createCell(2); celda.setCellValue(rs.getDouble("total")); celda = fila.createCell(3); celda.setCellValue(sd2.format(rs.getDate(6))); i = i + 1; } break;//productosClientes case "cotizacion": hoja = libro.createSheet("Ventas Cotizaciones"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("COTIZACION"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("FECHA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("PRECIO"); celda.setCellStyle(cellStyle); celda = fila.createCell(6); celda.setCellValue("IVA"); celda.setCellStyle(cellStyle); celda = fila.createCell(7); celda.setCellValue("TOTAL"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombre")); celda = fila.createCell(1); celda.setCellValue(rs.getString("cotizacion")); celda = fila.createCell(2); celda.setCellValue(sd2.format(rs.getDate("fecCrea"))); celda = fila.createCell(3); celda.setCellValue(rs.getString("codigoInterno")); celda = fila.createCell(4); celda.setCellValue(rs.getString("nomProducto")); celda = fila.createCell(5); celda.setCellValue(rs.getDouble("precio")); celda = fila.createCell(6); celda.setCellValue(rs.getString("iva")); celda = fila.createCell(7); celda.setCellValue(rs.getString("total")); i = i + 1; } break;//cotizacion case "vencimientosFacturas": hoja = libro.createSheet("Vencimiento Facturas"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("DOCUMENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("NUMERO IDENTIFICACION CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("TELEFONO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("VALOR"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("SALDO"); celda.setCellStyle(cellStyle); celda = fila.createCell(6); celda.setCellValue("FECHA VENCIMIENTO"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("documento")); celda = fila.createCell(1); celda.setCellValue(rs.getString("numDoc")); celda = fila.createCell(2); celda.setCellValue(rs.getString("cliente")); celda = fila.createCell(3); celda.setCellValue(rs.getString("tel1")); celda = fila.createCell(4); celda.setCellValue(rs.getDouble("valor")); celda = fila.createCell(5); celda.setCellValue(rs.getDouble("saldo")); celda = fila.createCell(6); celda.setCellValue(sd2.format(rs.getDate("fecha_limite"))); i = i + 1; } break;//vencimientofactuas case "vencimientosSeparados": hoja = libro.createSheet("Vencimiento Separados"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("DOCUMENTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("NUMERO IDENTIFICACION CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("CLIENTE"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("TELEFONO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("VALOR"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("SALDO"); celda.setCellStyle(cellStyle); celda = fila.createCell(6); celda.setCellValue("FECHA VENCIMIENTO"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("documento")); celda = fila.createCell(1); celda.setCellValue(rs.getString("numDoc")); celda = fila.createCell(2); celda.setCellValue(rs.getString("cliente")); celda = fila.createCell(3); celda.setCellValue(rs.getString("tel1")); celda = fila.createCell(4); celda.setCellValue(rs.getDouble("valor")); celda = fila.createCell(5); celda.setCellValue(rs.getDouble("saldo")); celda = fila.createCell(6); celda.setCellValue(sd2.format(rs.getDate("fecha_limite"))); i = i + 1; } break;//vencimientosSeprados case "productosSinRotacion": hoja = libro.createSheet("productos sin rotacin"); fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue("CATEGORIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(1); celda.setCellValue("REFERENCIA"); celda.setCellStyle(cellStyle); celda = fila.createCell(2); celda.setCellValue("MARCA"); celda.setCellStyle(cellStyle); celda = fila.createCell(3); celda.setCellValue("CODIGO INTERNO"); celda.setCellStyle(cellStyle); celda = fila.createCell(4); celda.setCellValue("PRODUCTO"); celda.setCellStyle(cellStyle); celda = fila.createCell(5); celda.setCellValue("FECHA ULTIMO MOVIMIENTO"); celda.setCellStyle(cellStyle); i = i + 1; for (int j = 0; j <= 12; j++) { hoja.autoSizeColumn(j); } while (rs.next()) { fila = hoja.createRow(i); celda = fila.createCell(0); celda.setCellValue(rs.getString("nombreCategoria")); celda = fila.createCell(1); celda.setCellValue(rs.getString("nombreReferencia")); celda = fila.createCell(2); celda.setCellValue(rs.getString("nombreMarca")); celda = fila.createCell(3); celda.setCellValue(rs.getString("codigoInterno")); celda = fila.createCell(4); celda.setCellValue(rs.getString("nomProducto")); celda = fila.createCell(5); celda.setCellValue(sd2.format(rs.getDate("fechaultimo"))); i = i + 1; } break;//ProductosSinRotacion } /*Escribimos en el libro*/ libro.write(archi); /*Cerramos el flujo de datos*/ archi.close(); /*DESCARGAMOS EL ARCHIVO */ File f; f = new File(rutaArchivo); int bit; InputStream in; ServletOutputStream out; response.setContentType("application/vnd.ms-excel"); //Tipo de fichero. response.setHeader("Content-Disposition", "attachment;filename=\"" + nombreArchivo + "\""); //Configurar cabecera http in = new FileInputStream(f); out = response.getOutputStream(); bit = 256; while ((bit) >= 0) { bit = in.read(); out.write(bit); } out.flush(); out.close(); in.close(); } catch (Exception e) { e.printStackTrace(); } finally { try { if (rs != null) { rs.close(); } if (ps != null) { ps.close(); } if (con != null) { con.close(); } DBConnector.getInstance().closeConnection(); } catch (Exception e) { } } }