См. мой ответ на подобный вопрос , того, как установить опцию "Wake the computer to run this task...", которая только доступна из Планировщика задач UI (и через XML), а не schtasks.exe /create
командная строка.
основные детали его:
schtasks.exe /create /tn MyTask ...
schtasks.exe /query /xml /tn MyTask > MyTask.xml
schtasks.exe /create /tn MyTask /xml MyTask.xml /f
Если вам нужно сделать что-то еще с офисными документами на Java, выберите POI, как указано.
Для простого чтения / записи документа Excel, как вы просили, вы можете использовать формат CSV (также как упоминалось):
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;
public class CsvWriter {
public static void main(String args[]) throws IOException {
String fileName = "test.xls";
PrintWriter out = new PrintWriter(new FileWriter(fileName));
out.println("a,b,c,d");
out.println("e,f,g,h");
out.println("i,j,k,l");
out.close();
BufferedReader in = new BufferedReader(new FileReader(fileName));
String line = null;
while ((line = in.readLine()) != null) {
Scanner scanner = new Scanner(line);
String sep = "";
while (scanner.hasNext()) {
System.out.println(sep + scanner.next());
sep = ",";
}
}
in.close();
}
}
.csv или POI определенно подойдут, но вам следует знать о JExcel Энди Хана. Я считаю, что это лучшая библиотека Java для работы с Excel из существующих.
Попробуйте Apache POI HSSF . Вот пример того, как читать файл Excel:
try {
POIFSFileSystem fs = new POIFSFileSystem(new FileInputStream(file));
HSSFWorkbook wb = new HSSFWorkbook(fs);
HSSFSheet sheet = wb.getSheetAt(0);
HSSFRow row;
HSSFCell cell;
int rows; // No of rows
rows = sheet.getPhysicalNumberOfRows();
int cols = 0; // No of columns
int tmp = 0;
// This trick ensures that we get the data properly even if it doesn't start from first few rows
for(int i = 0; i < 10 || i < rows; i++) {
row = sheet.getRow(i);
if(row != null) {
tmp = sheet.getRow(i).getPhysicalNumberOfCells();
if(tmp > cols) cols = tmp;
}
}
for(int r = 0; r < rows; r++) {
row = sheet.getRow(r);
if(row != null) {
for(int c = 0; c < cols; c++) {
cell = row.getCell((short)c);
if(cell != null) {
// Your code here
}
}
}
}
} catch(Exception ioe) {
ioe.printStackTrace();
}
На странице документации у вас также есть примеры того, как писать в файлы Excel.
Apache POI может сделать это за вас. В частности, модуль HSSF . Краткое руководство очень полезно. Вот как сделать то, что вы хотите, - а именно создать лист и записать его.
Workbook wb = new HSSFWorkbook();
//Workbook wb = new XSSFWorkbook();
CreationHelper createHelper = wb.getCreationHelper();
Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow((short)0);
// Create a cell and put a value in it.
Cell cell = row.createCell(0);
cell.setCellValue(1);
// Or do it on one line.
row.createCell(1).setCellValue(1.2);
row.createCell(2).setCellValue(
createHelper.createRichTextString("This is a string"));
row.createCell(3).setCellValue(true);
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook.xls");
wb.write(fileOut);
fileOut.close();
Вы также можете рассмотреть JExcelApi . Я считаю, что это лучше, чем POI. Там'