从Excel

时间:2017-10-04 13:49:49

标签: javascript java excel import xssf

我目前的大学项目我正在寻求帮助。

我有一个生产程序,告诉我在给定的时间范围内(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获得以下解决方案的唯一问题:

  • 我要么删除参数以匹配XSSFWorkbook()

  • 我应该将fileSystem的类型更改为" OCPPackage"。这两种解决方案似乎都不起作用。

你们能解决我的问题吗?我很欣赏任何合作。

祝你有愉快的一天! 克里斯

0 个答案:

没有答案