Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
-1 / 2 / 0
Регистрация: 25.08.2018
Сообщений: 199

Работа с файлами Excel

25.08.2018, 21:10. Показов 997. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые форумчане. Ответьте пожалуйста на два вопроса

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
public class Readexeller {
    public static void main(String[] args) throws IOException {
        BufferedReader reader=new BufferedReader(new InputStreamReader(System.in));
        String filename=reader.readLine();
        reader.close();
        filename="C:/Users/lenovo/Desktop/"+filename;
        ArrayList <String>list=new ArrayList();
        for (int i=1;i<=10;i++){list.add("Герой1 "+i);}
 
        if (filename.endsWith(".xlsx"))
        {
            XSSFWorkbook workbook=new XSSFWorkbook();
            XSSFSheet sheet=workbook.createSheet("Геройский");
 
            for (int i=0;i<list.size();i++)
            {
                XSSFCell cell=sheet.createRow(i).createCell(0);
                cell.setCellValue(list.get(i));
            }
 
            FileOutputStream file=new FileOutputStream(filename);
            workbook.write(file);
            file.close();
        }
        else if (filename.endsWith(".xls"))
        {
            HSSFWorkbook workbook=new HSSFWorkbook();
            HSSFSheet sheet=workbook.createSheet("Hiroes");
 
            for (int i=0;i<list.size();i++)
            {
                HSSFCell cell=sheet.createRow(i).createCell((short) 0);
                cell.setEncoding(HSSFCell.ENCODING_UTF_16);
                cell.setCellValue(list.get(i));
            }
 
            FileOutputStream file=new FileOutputStream(filename);
            workbook.write(file);
            file.close();
        }
    }
 
}
1. Каким образом можно сократить код? А именно, можно ли создать общий класс для двух классов работы с excel? Грубо говоря необходимо избежать дублирования примерно одного и того же кода для двух разных файлов excel (то что внутри if-ов).
2. Каким образом для HSSFWorkbook можно создать название листов русскими буквами?
Спасибо
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
25.08.2018, 21:10
Ответы с готовыми решениями:

Работа с файлами
Здравствуйте, я новичок в яве... не подскажете как узнать размер файла и желательно всей папки где он находится. Заранее спасибо.

Работа с файлами
Здравствуйте, помогите пожалуйста с написанием программы. Надо написать программу , которая находит в файле символ @ и выдаёт файл с этого...

Работа с файлами
Задача:Считать строки из файла, и поменять местами первое и последнее слова в каждой строке. Столкнулся со следующей проблемой, не могу...

5
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
25.08.2018, 21:28
Цитата Сообщение от Sashagor82 Посмотреть сообщение
общий класс
Переменные декларируй по интерфейсу (Workbook и Sheet), а по if присваивай конкретные реализации.
Цитата Сообщение от Sashagor82 Посмотреть сообщение
FileOutputStream file=new FileOutputStream(filename);
workbook.write(file);
* file.close();
вообще из if вынеси, дублируется же...
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,667
Записей в блоге: 29
25.08.2018, 21:42
выше верно написали, разбей на методы, добавлю только что если XSSFWorkbook и HSSFWorkbook наследники одного класса то еще и полиморфизм можно использовать
0
-1 / 2 / 0
Регистрация: 25.08.2018
Сообщений: 199
26.08.2018, 12:15  [ТС]
Объясните пожалуйста, что значит декларировать по интерфейсу? Как вынести за if, если они объявляются внутри, Object объявлять?
0
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
26.08.2018, 12:39
Цитата Сообщение от Sashagor82 Посмотреть сообщение
декларировать по интерфейсу
Ну, может не так выразился..
Что-то типа
Java
1
2
3
4
5
6
7
8
9
10
Workbook workbook;
Sheet sheet;
//...
if(чегототам){
   workbook = new XSSFWorkbook();
   sheet = workbook.createSheet("Геройский");
//...
} else {
   workbook=new HSSFWorkbook();
// ну и так далее
Добавлено через 1 минуту
И уже после иф, запись в файл...
0
-1 / 2 / 0
Регистрация: 25.08.2018
Сообщений: 199
26.08.2018, 21:36  [ТС]
Не получается так, эти классы из разных библиотек.

Добавлено через 9 минут
Java
1
workbook= new HSSFWorkbook();
Вот такое присвоение не сделать.
Java
1
workbook= new XSSFWorkbook();
Тут все нормально.

Добавлено через 7 часов 52 минуты
Проблема решена путем замены библиотеки.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.08.2018, 21:36
Помогаю со студенческими работами здесь

java. работа с файлами
в программе нужно задействовать 3 файла: 1 - в нем согласные буквы 2 - рандомная комбинация букв из первого файла (это преобразование в...

Java, работа с файлами
Что программа должна делать. Открывать заданный файл и считывать его содержимое Открывать и выводить содержимое файла на экран ...

Работа с файлами в аплете
Я сделал на свою страничку типа счетчика. При запуске этого апплета я не вижу своего поля с цыфрами которые читаются с файла people.txt. ...

Работа с файлами на java
народ, подскажыте пожалуста, или ёщё лутше, скиньте фрагмент кода на java, когда используется чтение/запись из/в файл))) буду очень...

Работа с вордовскими файлами на Java
Можно ли как-нибудь открыть фордовский файл в отдельной форме? Редактировать его? Если кто знает напишите краткий алгоритм


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru