import org.simantics.db.Resource;
import org.simantics.db.WriteGraph;
import org.simantics.db.common.request.DelayedWriteRequest;
-import org.simantics.db.common.request.WriteRequest;
+import org.simantics.db.common.request.WriteResultRequest;
import org.simantics.db.common.utils.NameUtils;
import org.simantics.db.exception.BindingException;
import org.simantics.db.exception.DatabaseException;
import org.simantics.db.service.XSupport;
import org.simantics.layer0.Layer0;
import org.simantics.operation.Layer0X;
-import org.simantics.spreadsheet.graph.SpreadsheetStyle.SpreadsheetStyleBuilder;
-import org.simantics.spreadsheet.graph.formula.SpreadsheetEvaluationEnvironment;
-import org.simantics.spreadsheet.graph.parser.SheetFormulaParser;
-import org.simantics.spreadsheet.graph.parser.ast.AstValue;
+import org.simantics.spreadsheet.Spreadsheets;
import org.simantics.spreadsheet.resource.SpreadsheetResource;
-import org.simantics.spreadsheet.util.SpreadsheetUtils;
+import org.simantics.spreadsheet.solver.SpreadsheetBook;
+import org.simantics.spreadsheet.solver.SpreadsheetStyle;
+import org.simantics.spreadsheet.solver.SpreadsheetStyle.SpreadsheetStyleBuilder;
+import org.simantics.spreadsheet.solver.formula.CellValueVisitor;
+import org.simantics.spreadsheet.solver.formula.SpreadsheetEvaluationEnvironment;
+import org.simantics.spreadsheet.solver.formula.parser.SheetFormulaParser;
+import org.simantics.spreadsheet.solver.formula.parser.ast.AstValue;
+import org.simantics.spreadsheet.synchronization.ExcelArrayFormula;
+import org.simantics.spreadsheet.synchronization.ExcelFormula;
import org.simantics.utils.DataContainer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
public class ExcelImport {
-
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(ExcelImport.class);
+
private static final double POINT_TO_PIXEL_RATIO = 1.33;
- public static void importBook(Resource container, File file) {
+ public static void importBook(Resource container, File file) {
+ importBookR(container, file);
+ }
+
+ public static Resource importBookR(Resource container, File file) {
try {
graph.claim(sheet, L0.ConsistsOf, L0.PartOf, newCell);
}
- BTree bt = new BTree(graph, SpreadsheetUtils.SPREADSHEET_BTREE_SIZE, SR.Lines, SR.LineNode, L0.PartOf, true);
+ BTree bt = new BTree(graph, Spreadsheets.SPREADSHEET_BTREE_SIZE, SR.Lines, SR.LineNode, L0.PartOf, true);
result.add(bt);
Resource lines = bt.rootOfBTree();
Cell val = row.getCell(i, Row.RETURN_BLANK_AS_NULL);
if(val != null) {
- String cellName = SpreadsheetUtils.cellName(rowN, i);
+ String cellName = Spreadsheets.cellName(rowN, i);
int ccIndx = val.getColumnIndex();
if(columnWidths.size()<=ccIndx){
btreeContainer.set(result);
bookContainer.set(book);
} catch (Exception e) {
- e.printStackTrace();
+ LOGGER.error("Could not import book " + file.getAbsolutePath(), e);
btreeContainer.add(Collections.emptyList());
}
}
}
});
- Simantics.getSession().sync(new WriteRequest() {
+ return Simantics.getSession().sync(new WriteResultRequest<Resource>() {
@Override
- public void perform(WriteGraph graph) throws DatabaseException {
+ public Resource perform(WriteGraph graph) throws DatabaseException {
Resource delayedBook = bookContainer.get();
XSupport support = graph.getService(XSupport.class);
Resource book = support.convertDelayedResourceToResource(delayedBook);
SpreadsheetGraphUtils.constructAndInitializeRunVariable(graph, book);
+ return book;
}
});
} catch (Exception e) {
- e.printStackTrace();
+ LOGGER.error("Could not import book " + file.getAbsolutePath(), e);
+ return null;
}
-
}
private static Resource assignStyles(WriteGraph graph, SpreadsheetResource SR, Cell cell, Resource book, Map<Integer, Resource> existingStyles, Map<Integer, SpreadsheetStyle> existingStyles2, String styleName) throws DatabaseException {
SheetFormulaParser p = new SheetFormulaParser(new StringReader("(-(0.2/2)+SQRT((0.2/2)^2-4*((0.2/2)^2-(3*0.17625)/(PI()*4.7))))"));
AstValue v = p.relation();
System.err.println("v="+v);
- SpreadsheetBook book = new SpreadsheetBook();
+ SpreadsheetBook book = new SpreadsheetBook("http:/");
Object o = v.accept(new CellValueVisitor(SpreadsheetEvaluationEnvironment.getInstance(book), null));
System.err.println("o="+o);
}