powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / excel и java помогите разобраться
9 сообщений из 9, страница 1 из 1
excel и java помогите разобраться
    #38517153
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа, прошу помощи вашей.
По мере необходимости прошлось влазить в java и нужно разобраться с работой в excel
Установил я IntelliJ IDEA и создал проект.
код был взят отсюда
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
package excel_test;
import java.io.*;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFWorkbook; //New imports to read XLSX format
import org.apache.poi.xssf.usermodel.XSSFSheet; //New imports to read XLSX format     .

public class XLSX {
    public static void main(String[] args) throws Exception{
        //Read Excel document first
        FileInputStream input_document = new FileInputStream(new File("C:\\1.xlsx"));
        // convert it into a POI object
        XSSFWorkbook my_xlsx_workbook;
        my_xlsx_workbook = new XSSFWorkbook(input_document);
        // Read excel sheet that needs to be updated
        XSSFSheet my_worksheet = my_xlsx_workbook.getSheetAt(0);
        // declare a Cell object
        XSSFCell cell = null;
        // Access the cell first to update the value
        cell = my_worksheet.getRow(2).getCell(1);
        // Get current value and reduce 5 from it
        cell.setCellValue(cell.getNumericCellValue() - 100);
        //important to close InputStream
        input_document.close();
        //Open FileOutputStream to write updates
        FileOutputStream output_file =new FileOutputStream(new File("C:\\1.xlsx"));
        //write changes
        my_xlsx_workbook.write(output_file);
        //close the stream
        output_file.close();
    }
}


устанавливается по умолчанию пакет poi-ooxml-3.5-FINAL.jar
в статье говорится, что нужен 3.8, но если я его устанавливаю, то import требует 3,5.
= то, что выдает компилятор
"C:\Program Files\Java\jdk1.7.0_45\bin\java" -Didea.launcher.port=7537 "-Didea.launcher.bin.path=C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.4\bin" -Dfile.encoding=UTF-8 -classpath "C:\Program Files\Java\jdk1.7.0_45\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jce.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jfxrt.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\management-agent.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\resources.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\rt.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\access-bridge-64.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\jaccess.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunec.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.7.0_45\jre\lib\ext\zipfs.jar;C:\Users\Server\IdeaProjects\excel\target\test-classes;C:\Users\Server\IdeaProjects\excel\poi-3.9-20121203.jar;C:\Users\Server\IdeaProjects\excel\poi-ooxml-3.5-FINAL.jar;C:\Program Files (x86)\JetBrains\IntelliJ IDEA 12.1.4\lib\idea_rt.jar" com.intellij.rt.execution.application.AppMain excel_test.XLSX
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlbeans/XmlException
at excel_test.XLSX.main(XLSX.java:13)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)
Caused by: java.lang.ClassNotFoundException: org.apache.xmlbeans.XmlException
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 6 more

Process finished with exit code 1

вроде все должно работать, но файл не изменяется.
Объясните пожалуйста, кто знает.
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517173
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517229
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
добавил, ничего не изменилось (
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517232
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вернее начало просить библы дальше, попробую подобавлять все.
Вопрос: А почему он сам их не подтягивает? Все равно с нета все берет.
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517377
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kreol,

Автоматом он не сможет подтянуть, придется добавлять вручную.
Как вариант, можно импортировать "евоный" персональный POM-файл,
в котором уже явно прописаны все необходимые зависимости:

http://repo1.maven.org/maven2/org/apache/xmlbeans/xmlbeans/2.4.0/xmlbeans-2.4.0.pom
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517404
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, спасибо так и сделал, только теперь пытаюсь приплести selenium
по отдельности запуск браузера(правда только до момента вычисления количества элементов
Код: java
1.
driver.getElementIndex

и
Код: java
1.
driver.getTable

- не могу понять откуда взять.) и редактирование файла excel работают.
Буду очень признателен, Вам, за помощь.
код
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
package excel_test;

import org.apache.poi.openxml4j.opc.OPCPackage;
import org.apache.poi.xssf.usermodel.XSSFCell;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;

 import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;


public class XLSX {

    public static void main(String[] args) throws Exception{
    {
        //Read Excel document first
        FileInputStream input_document = new FileInputStream(new File("C:\\1.xlsx"));
        // convert it into a POI object
        XSSFWorkbook my_xlsx_workbook;
        my_xlsx_workbook = new XSSFWorkbook(OPCPackage.open(input_document));
        // Read excel sheet that needs to be updated
        XSSFSheet my_worksheet = my_xlsx_workbook.getSheetAt(0);
        // declare a Cell object
        XSSFCell cell = null;

        driver = new WebDriver();
        driver.set(new FirefoxDriver());
        driver.get().navigate().to("http://namami.org/PKstate.aspx");
        Select select = new Select(driver.get().findElement(By.xpath("//*[@id='DdlState']")));
        select.selectByVisibleText("Andhra Pradesh");
        Select select2 = new Select(driver.get().findElement(By.xpath("//*[@id='DdlDist']")));
        select2.selectByVisibleText("Hydrabad");
        driver.get().findElement(By.cssSelector("option[value=\" Hydrabad\"]")).click();
        //driver.close();

        int count;
        int i,y,z;
        count = driver.getElementIndex("//table[@id='Datagrid1']/tbody/tr[last()]");

        for (i = 0; i<count; i--)
        {
            z = i+1;
            for(y = 0; y<=6; y++)
            {
                //'locator =
                if (!(driver.isElementPresent(driver.getTable("Datagrid1." + i + "." + y))= true))
                {
                    cell = my_worksheet.getRow(z).getCell(y + 1);
                    cell.setCellValue(driver.getTable("Datagrid1." + i + "." + y));
                }
                else
                {
                    break;
                }
            }
        }
        input_document.close();
        //Open FileOutputStream to write updates
        FileOutputStream output_file =new FileOutputStream(new File("C:\\1.xlsx"));
        //write changes
        my_xlsx_workbook.write(output_file);
        //close the stream
        output_file.close();

    }
    }
}
 /*   public static void main(String[] args) throws Exception{

        //Read Excel document first
        FileInputStream input_document = new FileInputStream(new File("C:\\1.xlsx"));
        // convert it into a POI object
        XSSFWorkbook my_xlsx_workbook;
        my_xlsx_workbook = new XSSFWorkbook(OPCPackage.open(input_document));
        // Read excel sheet that needs to be updated
        XSSFSheet my_worksheet = my_xlsx_workbook.getSheetAt(0);
        // declare a Cell object
        XSSFCell cell = null;
        // Access the cell first to update the value
        cell = my_worksheet.getRow(2).getCell(1);
        // Get current value and reduce 5 from it
        cell.setCellValue(cell.getNumericCellValue() - 100);
        //important to close InputStream
        input_document.close();
        //Open FileOutputStream to write updates
        FileOutputStream output_file =new FileOutputStream(new File("C:\\1.xlsx"));
        //write changes
        my_xlsx_workbook.write(output_file);
        //close the stream
        output_file.close();

    }    */

...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517599
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот, так лучше
Код: java
1.
2.
3.
WebDriver driver = new FirefoxDriver(); пере объявил
count = driver.getElementIndex("//table[@id='Datagrid1']/tbody/tr[last()]");
if (!(driver.isElementPresent(driver.getTable("Datagrid1." + i + "." + y))= true))



Ошибки:
java: cannot find symbol
symbol: method getElementIndex(java.lang.String)
location: variable driver of type org.openqa.selenium.WebDriver

java: cannot find symbol
symbol: method getTable(java.lang.String)
location: variable driver of type org.openqa.selenium.WebDriver

isElementPresent тоже пишет Cannot resolve method
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517611
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
подсказали, что использую методы SeleniumRC
но совместить что-то не получается
Код: java
1.
2.
WebDriver driver = new FirefoxDriver();
        Selenium selenium = new WebDriverBackedSelenium(driver, "http://namami.org/PKstate.aspx");


как бы начинает работать, но потом selenium не имеет методов которые были в простом driver
...
Рейтинг: 0 / 0
excel и java помогите разобраться
    #38517721
Kreol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Все разобрался,
f ((selenium.isElementPresent(selenium.getTable("Datagrid1." + i + "." + y))))

поменять на
// Grab the table
WebElement table = driver.findElement(By.id('Datagrid1'));

// Now get all the TR elements from the table
List<WebElement> allRows = table.findElements(By.tagName("tr"));

// And iterate over them, getting the cells
for (WebElement row : allRows) {
List<WebElement> cells = row.findElements(By.tagName("td"));
for (WebElement cell : cells) {
// And so on
}

}
ну и править напильником
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / excel и java помогите разобраться
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]