在方法

时间:2016-05-22 16:38:00

标签: java function object apache-poi global

我正在学习JAVA编程。
我创建了一个程序来成功地在MS字中打印日期和时间,但现在我想在不同功能的MS Word文档中打印字符串。我只能从main打印出来。

以下是我的计划。

import java.util.*;

import java.io.*;

import org.apache.poi.xwpf.usermodel.*;
public class bill
{

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

//Blank Document
XWPFDocument document= new XWPFDocument(); 
//Write the Document in file system
FileOutputStream out = new FileOutputStream("createparagraph.docx");

//create Paragraph
XWPFParagraph paragraph = document.createParagraph();
XWPFRun run=paragraph.createRun();
bill date1=new bill();
String day1=date1.date();
run.setText(day1)
document.write(out);
out.close();
}

public String date()
{
int day, month, year;
int second, minute, hour;
GregorianCalendar date = new GregorianCalendar();

  day = date.get(Calendar.DAY_OF_MONTH);
  month = date.get(Calendar.MONTH);
  year = date.get(Calendar.YEAR);

  second = date.get(Calendar.SECOND);
  minute = date.get(Calendar.MINUTE);
  hour = date.get(Calendar.HOUR);

  String day1= String.valueOf(day);
     String month1= String.valueOf(month);
        String year1= String.valueOf(year);  
            String second1= String.valueOf(second);
                String minute1= String.valueOf(minute);
                    String hour1= String.valueOf(hour);
               run.setText(day1); //here is error *
  return day1;

  }
 }

正如您在我的run.setText(day1);函数中使用date()时所看到的那样,出现语法错误:

  

无法找到符号变量运行。

我是新手,抱歉我使用了错误的英语或惯例 请帮我用不同的功能打印MS word中的数据。

如果你们发布了更正的节目,那么我将非常感激。

EDIT 我做了这个,但现在没有任何东西在ms字上打印

 import java.util.*;

 import java.io.*;

 import org.apache.poi.xwpf.usermodel.*;
  public class bill
{

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

 //Blank Document
 XWPFDocument document= new XWPFDocument(); 
 //Write the Document in file system
 FileOutputStream out = new FileOutputStream("createparagraph.docx");
 bill date1=new bill();
 String day1=date1.date();
 document.write(out);
 out.close();
 }

 public String date()
 {
  int day, month, year;
  int second, minute, hour;
  GregorianCalendar date = new GregorianCalendar();

  day = date.get(Calendar.DAY_OF_MONTH);
  month = date.get(Calendar.MONTH);
  year = date.get(Calendar.YEAR);

  second = date.get(Calendar.SECOND);
  minute = date.get(Calendar.MINUTE);
  hour = date.get(Calendar.HOUR);

  String day1= String.valueOf(day);
     String month1= String.valueOf(month);
        String year1= String.valueOf(year);  
            String second1= String.valueOf(second);
                String minute1= String.valueOf(minute);
                    String hour1= String.valueOf(hour);
                    XWPFDocument document= new XWPFDocument(); 
                    XWPFParagraph paragraph = document.createParagraph();
                       XWPFRun run=paragraph.createRun();
                run.setText(day1+"/"+month1+"/"+year1+"                    "+second+":"+minute1+":"+hour1);

  return day1;

 }
}

1 个答案:

答案 0 :(得分:2)

在第一个示例中,您会收到语法错误,因为您的"运行"变量与您调用它的范围不同。方法中的变量只能用于或者被看到"通过同一组{}中的其他代码 例如,像这样的东西将不起作用

public static void main(String[] args) {
    int name = "Sally";
    sayHi();
}
public void sayHi(){
    System.out.println("Hi " + name);
}

sayHi方法无法知道名称是什么。你可以把它作为一个参数传递。

你的第二个例子不起作用,因为你得到约会后你没有做任何事情。您没有先将文档添加到文档中,而是立即编写文档。此外,您只返回当天,而不是整个日期。

我写了一个快速的小程序,应该按照你的要求做:

public class Bill {

    public static void writeDate(XWPFDocument document) {

        SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy         hh:mm:ss");
        String date = sdf.format(new Date()); 

        XWPFParagraph paragraph = document.createParagraph();
        XWPFRun run = paragraph.createRun();
        run.setText(date);
    }

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

        XWPFDocument document = new XWPFDocument();
        writeDate(document);
        FileOutputStream out = new FileOutputStream("createparagraph.docx");
        document.write(out);
        out.close();
    }
}

一些事情。
我冒昧地使用了Date()对象,尽管你正在做的事情会起作用。

按照惯例,我们在Java中大写类名。 即。

  public class bill {  

应该是

  public class Bill {  

按照惯例,方法名称应简明扼要地描述其目的。你的date()方法名称并没有说明发生了什么。

让我知道这些是否有意义。