我目前的大学项目我正在寻求帮助。
我有一个生产程序,告诉我在给定的时间范围内(1年)我需要生产多少当前产品。基于这个生产计划,我在Excel中计算了生产需求(机械和人力)。
此外我计算出,需要一台特定类型的机器需要三个来满足需求。这个号码现在列在我的excel-productionpProgramm中的Cell G33(工作站1)中。现在我需要使用java规则将这些数据转换为我的UML设计语言。
我的UML代码应该做的是计算原材料源,工作站和半成品槽之间的最佳材料流,并创建我通过stp文件导入的几何体。然而,这不是我正在努力的目标。
在使用.xlsm excelsheet(XSSF)时,我无法研究如何将单个excel单元格的数据导入到我的java代码中。以前此代码与Excel 2007(或更早版本)一起使用。我试图将代码从HSSF转换为HSSX,这些代码大部分都有效,但仍有一个我无法修复的错误。
这是我到目前为止所编写的内容(我尝试导入生产所需的七个工作站的数据)。我正在使用仅在大学项目中使用的程序。它基于eclipse框架(如果这很重要):
import de.iils.dc43.transformationengine.javarule.JavaRule;
import de.iils.dc43.transformationengine.popup.actions.TransformationRunner;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.eclipse.core.resources.IWorkspace;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.IPath;
public class ReadExcel0 extends JavaRule {
//Variables
public static String numberwsone = null;
public static String numberwstwo = null;
public static String numberwsthree = null;
public static String numberwsfour= null;
public static String numberwsfive = null;
public static String numberwssix = null;
public static String numberwsseven = null;
@Override
public void execute(TransformationRunner trafoRunner) throws FileNotFoundException, IOException {
//get object which represents workspace
IWorkspace workspace = ResourcesPlugin.getWorkspace();
//get location of workspace
IPath workspaceDirectory = workspace.getRoot().getLocation();
String strWorkspace = workspaceDirectory.toString();
//location of Excel file
String fileName = strWorkspace+"/Projectname/Data/Data.xlsm";
POIFSFileSystem fileSystem = new POIFSFileSystem(new FileInputStream(fileName));
@SuppressWarnings("resource")
XSSFWorkbook workbook = new XSSFWorkbook(fileSystem);
XSSFSheet sheetBedarfsrechnung = workbook.getSheetAt(0); // Get Excel Sheet
XSSFCell excelArbeitsplatzeins = sheetBedarfsrechnung.getRow(34).getCell(8); //Excelcell
numberwsone = excelArbeitsplatzeins.toString();
System.out.println(excelArbeitsplatzeins);
XSSFCell excelArbeitsplatzzwei = sheetBedarfsrechnung.getRow(35).getCell(8); //Excelcell
numberwstwo= excelArbeitsplatzzwei.toString();
System.out.println(excelArbeitsplatzzwei);
XSSFCell excelArbeitsplatzdrei = sheetBedarfsrechnung.getRow(36).getCell(8); //Excelcell
numberwsthree = excelArbeitsplatzdrei.toString();
System.out.println(excelArbeitsplatzdrei);
XSSFCell excelArbeitsplatzvier = sheetBedarfsrechnung.getRow(37).getCell(8); //Excelcell
numberwsfour = excelArbeitsplatzvier.toString();
System.out.println(excelArbeitsplatzvier);
XSSFCell excelArbeitsplatzfuenf = sheetBedarfsrechnung.getRow(38).getCell(8); //Excelcell
numberwsfive = excelArbeitsplatzfuenf.toString();
System.out.println(excelArbeitsplatzfuenf);
XSSFCell excelArbeitsplatzsechs = sheetBedarfsrechnung.getRow(39).getCell(8); //Excelcell
numberwssix = excelArbeitsplatzsechs.toString();
System.out.println(excelArbeitsplatzsechs);
XSSFCell excelArbeitsplatzsieben = sheetBedarfsrechnung.getRow(40).getCell(8); //Excelcell
numberwsseven = excelArbeitsplatzsieben.toString();
System.out.println(excelArbeitsplatzsieben);
}
}
有关:
XSSFWorkbook workbook = new XSSFWorkbook(fileSystem);
这似乎是我从Java获得以下解决方案的唯一问题:
或
你们能解决我的问题吗?我很欣赏任何合作。
祝你有愉快的一天! 克里斯