|
|
|
Java : netbean ช่วยแนะนำวิธี import file จาก excel ให้แสดง format วันที่ ทีครับ |
|
|
|
|
|
|
|
รบกวนช่วยดูให้หน่อยครับ เวลา import file จาก excel แล้ววันที่มันไม่แสดง format dd/mm/yyyy
ไฟล์ใน excel ไม่น่ามีปัญหาครับเพราะผมลองแก้ทุก format ตรงช่องวันที่แล้ว
Code (Java)
package Modelo;
import java.io.*;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
import java.util.*;
import javax.swing.*;
//import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.xssf.usermodel.*;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.Date;
/**
*
* @author ricardo
*/
public class ModeloExcel {
Workbook wb;
/*class DateRenderer extends DefaultTableCellRenderer {
private static final long serialVersionUID = 1L;
private Date dateValue;
private SimpleDateFormat sdfNewValue = new SimpleDateFormat("dd/mm/yyyy");
private String valueToString = "";
public void setValue(Object value) {
if ((value != null)) {
String stringFormat = value.toString();
try {
dateValue = new SimpleDateFormat("dd/mm/yyyy", Locale.ENGLISH).parse(stringFormat);
} catch (ParseException e) {
e.printStackTrace();
}
}
String pattern = "MM/dd/yyyy";
SimpleDateFormat format = new SimpleDateFormat(pattern);
valueToString = format.format(new Date());
value = valueToString;
super.setValue(value);
}
}*/
public String Importar(File archivo, JTable tablaD){
/*String pattern = "MM/dd/yyyy";
SimpleDateFormat format = new SimpleDateFormat(pattern);
try {
Date date = format.parse("12/31/2006");
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
// formatting
format.format(new Date());*/
String respuesta="Import ไม่สำเร็จ";
DefaultTableModel modeloT = new DefaultTableModel();
tablaD.setModel(modeloT);
try {
wb = WorkbookFactory.create(new FileInputStream(archivo));
Sheet hoja = wb.getSheetAt(0);
Iterator filaIterator = hoja.rowIterator();
int indiceFila=-1;
while (filaIterator.hasNext()) {
indiceFila++;
Row fila = (Row) filaIterator.next();
Iterator columnaIterator = fila.cellIterator();
Object[] listaColumna = new Object[6];
int indiceColumna=-1;
while (columnaIterator.hasNext()) {
indiceColumna++;
Cell cell = (Cell) columnaIterator.next();
/*if(cell.getCellType()==Cell.CELL_TYPE_NUMERIC){
if (DateUtil.isCellDateFormatted(cell)) {
System.out.println(cell.getDateCellValue());
} else {
System.out.println(cell.getNumericCellValue());
}
}*/
if(indiceFila==0){
modeloT.addColumn(cell.getStringCellValue());
}else{
if(cell!=null){
switch(cell.getCellType()){
case Cell.CELL_TYPE_NUMERIC:
listaColumna[indiceColumna]= (int)Math.round(cell.getNumericCellValue());
break;
case Cell.CELL_TYPE_STRING:
listaColumna[indiceColumna]= cell.getStringCellValue();
break;
case Cell.CELL_TYPE_BOOLEAN:
listaColumna[indiceColumna]= cell.getBooleanCellValue();
break;
default:
listaColumna[indiceColumna]=cell.getDateCellValue();
break;
}
}
}
}
if(indiceFila!=0)modeloT.addRow(listaColumna);
}
respuesta="Import สำเร็จ";
} catch (Exception e) {
//JOptionPane.showMessageDialog(null, e.toString());
}
return respuesta;
}
public String Exportar(File archivo, JTable tablaD){
String respuesta="Export ไม่สำเร็จ";
int numFila=tablaD.getRowCount(), numColumna=tablaD.getColumnCount();
if(archivo.getName().endsWith("xls")){
wb = new HSSFWorkbook();
}else{
wb = new XSSFWorkbook();
}
Sheet hoja = wb.createSheet("Pruebita");
try {
for (int i = -1; i < numFila; i++) {
Row fila = hoja.createRow(i+1);
for (int j = 0; j < numColumna; j++) {
Cell celda = fila.createCell(j);
if(i==-1){
celda.setCellValue(String.valueOf(tablaD.getColumnName(j)));
}else{
celda.setCellValue(String.valueOf(tablaD.getValueAt(i, j)));
}
wb.write(new FileOutputStream(archivo));
}
}
respuesta="Export สำเร็จ";
} catch (Exception e) {
}
return respuesta;
}
/*public class DateCellRenderer extends DefaultTableCellRenderer {
public DateCellRenderer() { super(); }
@Override
public void setValue(Object value) {
SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");
setText((value == null) ? "" : sdf.format(value));
}
}*/
}
โดย code ผมเอามาจากคลิปนี้
ขอบคุณครับ
Tag : Java, MySQL, iReport, JAVA, Windows
|
ประวัติการแก้ไข 2016-11-25 16:36:26
|
|
|
|
|
Date :
2016-11-25 16:34:02 |
By :
PuppupO_o |
View :
2321 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองใช้การ Convert เป็น DateTime ครับ => Java Convert String to Date Time
หรือไม่อาจจะต้องใช้พวก Split ตัดมันมาแล้วค่อย Convert เป็น DateTime ครับ
|
|
|
|
|
Date :
2016-11-28 10:39:35 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลองแล้วไม่ได้เลยครับ
|
|
|
|
|
Date :
2016-11-28 17:22:17 |
By :
PuppupO_o |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|