esoe
6 months ago
10 changed files with 348 additions and 57 deletions
@ -0,0 +1,104 @@
@@ -0,0 +1,104 @@
|
||||
package ru.molokoin.storage_rs.model; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
@AllArgsConstructor |
||||
@NoArgsConstructor |
||||
public class XlsxCell { |
||||
private String content; //содержимое ячейки
|
||||
private String textColor; //цвет шрифта
|
||||
private String bgColor; // цвет заливки ячейки
|
||||
private String textSize; //8-12-14-24 размеры шрифта
|
||||
private int textWeight; //жирность: bold (900), normal(500),
|
||||
private String type;// STRING, NUMERIC, BOOLEAN, FORMULA
|
||||
|
||||
public XlsxCell(String content){ |
||||
this.content = content; |
||||
} |
||||
|
||||
/** |
||||
* @return the content |
||||
*/ |
||||
public String getContent() { |
||||
return content; |
||||
} |
||||
|
||||
/** |
||||
* @param content the content to set |
||||
*/ |
||||
public void setContent(String content) { |
||||
this.content = content; |
||||
} |
||||
|
||||
/** |
||||
* @return the textColor |
||||
*/ |
||||
public String getTextColor() { |
||||
return textColor; |
||||
} |
||||
|
||||
/** |
||||
* @param textColor the textColor to set |
||||
*/ |
||||
public void setTextColor(String textColor) { |
||||
this.textColor = textColor; |
||||
} |
||||
|
||||
/** |
||||
* @return the bgColor |
||||
*/ |
||||
public String getBgColor() { |
||||
return bgColor; |
||||
} |
||||
|
||||
/** |
||||
* @param bgColor the bgColor to set |
||||
*/ |
||||
public void setBgColor(String bgColor) { |
||||
this.bgColor = bgColor; |
||||
} |
||||
|
||||
/** |
||||
* @return the textSize |
||||
*/ |
||||
public String getTextSize() { |
||||
return textSize; |
||||
} |
||||
|
||||
/** |
||||
* @param textSize the textSize to set |
||||
*/ |
||||
public void setTextSize(String textSize) { |
||||
this.textSize = textSize; |
||||
} |
||||
|
||||
/** |
||||
* @return the textWeight |
||||
*/ |
||||
public int getTextWeight() { |
||||
return textWeight; |
||||
} |
||||
|
||||
/** |
||||
* @param textWeight the textWeight to set |
||||
*/ |
||||
public void setTextWeight(int textWeight) { |
||||
this.textWeight = textWeight; |
||||
} |
||||
|
||||
/** |
||||
* @return the type |
||||
*/ |
||||
public String getType() { |
||||
return type; |
||||
} |
||||
|
||||
/** |
||||
* @param type the type to set |
||||
*/ |
||||
public void setType(String type) { |
||||
this.type = type; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,137 @@
@@ -0,0 +1,137 @@
|
||||
package ru.molokoin.storage_rs.model; |
||||
|
||||
import java.io.File; |
||||
import java.io.FileInputStream; |
||||
import java.io.IOException; |
||||
import java.util.ArrayList; |
||||
import java.util.HashMap; |
||||
import java.util.List; |
||||
import java.util.Map; |
||||
|
||||
import org.apache.poi.ss.usermodel.Cell; |
||||
import org.apache.poi.ss.usermodel.Row; |
||||
import org.apache.poi.ss.usermodel.Sheet; |
||||
import org.apache.poi.ss.usermodel.Workbook; |
||||
import org.apache.poi.xssf.usermodel.XSSFWorkbook; |
||||
|
||||
import lombok.AllArgsConstructor; |
||||
import lombok.Data; |
||||
import lombok.NoArgsConstructor; |
||||
|
||||
@AllArgsConstructor |
||||
@NoArgsConstructor |
||||
public class XlsxDocument { |
||||
private Map<Integer, List<XlsxCell>> data; |
||||
private Document document; |
||||
|
||||
public XlsxDocument(Document document){ |
||||
this.document = document; |
||||
this.data = init(document); |
||||
} |
||||
|
||||
private Map<Integer, List<XlsxCell>> init(Document document) { |
||||
FileInputStream file; |
||||
Workbook workbook; |
||||
try { |
||||
file = new FileInputStream(new File(document.getPath())); |
||||
workbook = new XSSFWorkbook(file); |
||||
|
||||
Sheet sheet = workbook.getSheetAt(0); |
||||
data = new HashMap<>(); |
||||
Integer i = 0; |
||||
for (Row row : sheet) { |
||||
List<XlsxCell> xlsxCells = null; |
||||
XlsxCell xlsxCell = null; |
||||
for (Cell cell : row) { |
||||
xlsxCells = new ArrayList<>(); |
||||
switch (cell.getCellType()) { |
||||
case STRING: { |
||||
xlsxCell = new XlsxCell(cell.getStringCellValue() + ""); |
||||
} break; |
||||
case NUMERIC: { |
||||
xlsxCell = new XlsxCell(cell.getNumericCellValue() + ""); |
||||
} break; |
||||
case BOOLEAN: { |
||||
xlsxCell = new XlsxCell(cell.getBooleanCellValue() + ""); |
||||
} break; |
||||
case FORMULA: { |
||||
xlsxCell = new XlsxCell(cell.getCellFormula() + ""); |
||||
} break; |
||||
default: |
||||
} |
||||
xlsxCells.add(xlsxCell); |
||||
} |
||||
data.put(i, xlsxCells); |
||||
i++; |
||||
} |
||||
}catch (IOException e) { |
||||
System.out.println("Не читается файл: " + e.getMessage()); |
||||
} |
||||
return data; |
||||
} |
||||
|
||||
/** |
||||
* @return the data |
||||
*/ |
||||
public Map<Integer, List<XlsxCell>> getData() { |
||||
return data; |
||||
} |
||||
|
||||
/** |
||||
* @param data the data to set |
||||
*/ |
||||
public void setData(Map<Integer, List<XlsxCell>> data) { |
||||
this.data = data; |
||||
} |
||||
|
||||
/** |
||||
* @return the document |
||||
*/ |
||||
public Document getDocument() { |
||||
return document; |
||||
} |
||||
|
||||
/** |
||||
* @param document the document to set |
||||
*/ |
||||
public void setDocument(Document document) { |
||||
this.document = document; |
||||
} |
||||
|
||||
@Override |
||||
public int hashCode() { |
||||
final int prime = 31; |
||||
int result = 1; |
||||
result = prime * result + ((data == null) ? 0 : data.hashCode()); |
||||
result = prime * result + ((document == null) ? 0 : document.hashCode()); |
||||
return result; |
||||
} |
||||
|
||||
@Override |
||||
public boolean equals(Object obj) { |
||||
if (this == obj) |
||||
return true; |
||||
if (obj == null) |
||||
return false; |
||||
if (getClass() != obj.getClass()) |
||||
return false; |
||||
XlsxDocument other = (XlsxDocument) obj; |
||||
if (data == null) { |
||||
if (other.data != null) |
||||
return false; |
||||
} else if (!data.equals(other.data)) |
||||
return false; |
||||
if (document == null) { |
||||
if (other.document != null) |
||||
return false; |
||||
} else if (!document.equals(other.document)) |
||||
return false; |
||||
return true; |
||||
} |
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -1,24 +0,0 @@
@@ -1,24 +0,0 @@
|
||||
<!DOCTYPE html> |
||||
<html xmlns="http://www.w3.org/1999/xhtml" |
||||
xmlns:th="http://www.thymeleaf.org"> |
||||
<html> |
||||
<head> |
||||
<meta charset="UTF-8"> |
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
<title>upload-page</title> |
||||
<script src="https://cdn.jsdelivr.net/npm/@webcomponents/webcomponentsjs@2/webcomponents-loader.min.js"></script> |
||||
<script type="module" src="https://cdn.jsdelivr.net/gh/zerodevx/zero-md@1/src/zero-md.min.js"></script> |
||||
</head> |
||||
<body> |
||||
<form method="post" th:action="@{/upload}" enctype="multipart/form-data"> |
||||
<div> |
||||
<input type="file" name="file"> |
||||
</div> |
||||
<button type="submit">Upload File</button> |
||||
</form> |
||||
<div class="list"> |
||||
|
||||
|
||||
</div> |
||||
</body> |
||||
</html> |
Loading…
Reference in new issue