Создать файл Excel в Java
Я хочу создать файл Excel и записать данные так же, как писать текстовый файл с Java. Я попытался изменить расширение файла с .txt
на .xls
. Но я хочу выделение жирным шрифтом в файле Excel. Как я могу это сделать?
Я пробовал использовать JXL API, но каждый раз, когда мне нужно создать ярлык, я хочу добавить метку. Не удается изменить строку и столбец таблицы?
Ответы
Ответ 1
//Find jar from here "http://poi.apache.org/download.html"
import java.io.*;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFCell;
public class CreateExlFile{
public static void main(String[]args) {
try {
String filename = "C:/NewExcelFile.xls" ;
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("FirstSheet");
HSSFRow rowhead = sheet.createRow((short)0);
rowhead.createCell(0).setCellValue("No.");
rowhead.createCell(1).setCellValue("Name");
rowhead.createCell(2).setCellValue("Address");
rowhead.createCell(3).setCellValue("Email");
HSSFRow row = sheet.createRow((short)1);
row.createCell(0).setCellValue("1");
row.createCell(1).setCellValue("Sankumarsingh");
row.createCell(2).setCellValue("India");
row.createCell(3).setCellValue("[email protected]");
FileOutputStream fileOut = new FileOutputStream(filename);
workbook.write(fileOut);
fileOut.close();
System.out.println("Your excel file has been generated!");
} catch ( Exception ex ) {
System.out.println(ex);
}
}
}
Ответ 2
Вы можете использовать Apache POI для создания собственных двоичных файлов xls.
Или вы можете использовать JExcelApi, что является другим, и, насколько я помню, немного легким, библиотекой Java для Excel.
Ответ 3
Справедливое предупреждение об генерации Excel Apache POI...
(Я знаю, что это старый пост, но это важно, если кто-то снова посмотрит это, как я это сделал)
У него была проблема с утечкой памяти, которая, предположительно, была решена к 2006 году, но которую люди совсем недавно испытывали. Если вы хотите автоматизировать генерацию большого количества excel (то есть, если вы хотите создать одиночный, большой файл, большое количество небольших файлов или и то, и другое), я бы рекомендовал использовать другой API. Либо это, либо увеличивая размер стека JVM до абсурдных пропорций, и, возможно, заглядывая в интернированные строки, если вы знаете, что на самом деле вы не будете работать со многими разными строками (хотя, конечно, интернирование строк означает, что если у вас есть большое количество разные строки, у вас будет совсем другая проблема с программной ошибкой памяти. Поэтому подумайте, прежде чем идти по этому маршруту).
Ответ 4
Изменение расширения файла никоим образом не изменяет его содержимое. Расширение - это всего лишь метка.
Если вы хотите работать с электронными таблицами Excel с помощью Java, прочитайте в библиотеку Apache POI.
Ответ 5
Плоские файлы не позволяют предоставлять метаинформацию.
Я бы предложил написать таблицу HTML, содержащую нужную вам информацию, и позволить Excel читать ее. Затем вы можете использовать <b> чтобы делать то, о чем вы просите.
Ответ 6
File fileName = new File(".....\\Fund.xlsx");
public static void createWorkbook(File fileName) throws IOException {
try {
FileOutputStream fos = new FileOutputStream(fileName);
XSSFWorkbook workbook = new XSSFWorkbook();
XSSFSheet sheet = workbook.createSheet("fund");
Row row = sheet.createRow(0);
Cell cell0 = row.createCell(0);
cell0.setCellValue("Nav Value");
Cell cell1 = row.createCell(1);
cell1.setCellValue("Amount Change");
Cell cell2 = row.createCell(2);
cell2.setCellValue("Percent Change");
workbook.write(fos);
fos.flush();
fos.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Ответ 7
Я создал API для более простого создания файла Excel.
Создать Excel - Создание Excel из шаблона
Просто установите необходимые значения после создания экземпляра, затем вызовите execute(), он будет создан на основе желаемого выходного каталога.
Но прежде чем использовать это, у вас должен быть шаблон Excel, который будет использоваться в качестве шаблона только что созданного файла Excel.
Кроме того, вам нужно Apache POI в вашем пути к классу проекта.
Ответ 8
Я также использовал JXLS: он получает данные как карту и шаблон EXCEL с правильным синтаксисом и правильно возвращает файл населен.
Данные в каждой ячейке должны быть JavaBean с видимостью public.
Не стоит полагать, что вы должны вставлять данные более чем на 1 лист: в этом случае я использовал POI.
Ответ 9
Чтобы создать электронную таблицу и форматировать ячейку, используя POI, см. Работа со шрифтами и используйте:
font.setBoldweight(Font.BOLDWEIGHT_BOLD);
POI работает очень хорошо. Есть некоторые вещи, которые вы не можете сделать (например, создавать макросы VBA), но он будет читать/писать электронные таблицы с помощью макросов, поэтому вы можете создать подходящую таблицу шаблонов, прочитать ее и обработать с помощью POI, а затем записать ее.