金沙js333娱乐场java常用类的利用方法

在某个须要个中大家要求抓取字段并且填充到excel表格里面,最终将excel表格调换到pdf格式实行输出,小编第三次接触那几个要求时,境遇多少个相比较为难的主题素材,现在逐条列出并且提供化解方案。

java读取各档案的次序的公文

用到的多少个包

bcmail-jdk14-132.jar/bcprov-jdk14-132.jar/checkstyle-all-4.2.jar/FontBox-0.1.0-dev.jar/lucene-core-2.0.0.jar/PDFBox-0.7.3.jar/poi-3.0-alpha3-20061212.jar/poi-contrib-3.0-alpha3-20061212.jar/poi-scratchpad-3.0-alpha3-20061212.jar

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import org.apache.poi.hslf.HSLFSlideShow;
import org.apache.poi.hslf.model.Slide;
import org.apache.poi.hslf.model.TextRun;
import org.apache.poi.hslf.usermodel.SlideShow;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.HWPFDocument;
import org.apache.poi.hwpf.usermodel.Paragraph;
import org.apache.poi.hwpf.usermodel.Range;
import org.pdfbox.pdfparser.PDFParser;
import org.pdfbox.util.PDFTextStripper;

public class Test {

/**
* @param args
*/
public static void p(Object obj) {
   System.out.println(obj);
}

public static void main(String[] args) {
   try {
    p(readPpt(“src/1.dps”));
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }

}
//读取ppt
public static String readPpt(String path) throws Exception {

   StringBuffer content = new StringBuffer(“”);
   try {
    SlideShow ss = new SlideShow(new HSLFSlideShow(path));//
path为文件的全路径名称,建立SlideShow
    Slide[] slides = ss.getSlides();// 得到每一张幻灯片
    for (int i = 0; i < slides.length; i++) {
     TextRun[] t = slides[i].getTextRuns();//
为了获得幻灯片的文字内容,建立TextRun
     for (int j = 0; j < t.length; j++) {
      content.append(t[j].getText());//
那里会将文字内容加到content中去
     }
     content.append(slides[i].getTitle());
    }
   } catch (Exception ex) {
    System.out.println(ex.toString());
   }
   return content.toString().trim();

}
// 读取xls
public static String readXls(String path) throws Exception {
   StringBuffer content = new StringBuffer(“”);// 文书档案内容
   HSSFWorkbook workbook = new HSSFWorkbook(new
FileInputStream(path));
   int sheetCount = workbook.getNumberOfSheets();// excel几张表
   for (int i = 0; i < sheetCount; i++) {// 遍历excel表
    HSSFSheet sheet = workbook.getSheetAt(i);// 对excel的率先个表引用
    int rowCount = sheet.getLastRowNum();// 取得最终一行的下标
    for (int j = 0; j < rowCount; j++) {// 循环每壹行
     HSSFRow row = sheet.getRow(j);// 引用行
     if (row == null) {
      continue;
     } else {
      short cellNum = row.getLastCellNum();
      for (short m = 0; m < cellNum; m++) {
       HSSFCell cell = row.getCell(m);// 引用行中的三个单元格
       if (cell != null) {
        int cellType = cell.getCellType();
        // CELL_TYPE_NUMERIC 0 数字
        // CELL_TYPE_STRING 1 字符串
        // CELL_TYPE_FORMULA 2 公式
        // CELL_TYPE_BLANK 3 空格
        // CELL_TYPE_BOOLEAN 4 布尔值
        // CELL_TYPE_ERROR 5 错误
        switch (cellType) {
        // 单元格类型为数字
        case HSSFCell.CELL_TYPE_NUMERIC:
         // 取数字单元格的值
         double d = cell.getNumericCellValue();
         content.append(String.valueOf(d) + ”   “);
         break;
        // 单元格类型为字符串
        case HSSFCell.CELL_TYPE_STRING:
         String str = cell.getStringCellValue().trim();
         if (!str.equals(“”)) {
          content.append(str + ”   “);
         }
         break;
        // 单元格类型为公式
        case HSSFCell.CELL_TYPE_FORMULA:
         // 不读取公式
         // String formula = cell.getCellFormula();
         // content = content + formula+” “;
         break;
        // 单元格类型为空白
        case HSSFCell.CELL_TYPE_BLANK:
         break;
        // 单元格类型为布尔值
        case HSSFCell.CELL_TYPE_BOOLEAN:
         // boolean bool = cell.getBooleanCellValue();
         // content = content + bool+” “;
         break;
        // 单元格类型为不当
        case HSSFCell.CELL_TYPE_ERROR:
         // byte errorCode = cell.getErrorCellValue();
         // content = content + errorCode+” “;
         break;
        default:
         break;
        }
       } else {
        // content = content + “…” +”
“;//未有多少的单元格使用…填充
       }
      }
     }
     content.append(“\r”);
    }
   }
   return content.toString().trim();
}

// 读取pdf
public static String readPdf(String path) throws Exception {
   StringBuffer content = new StringBuffer(“”);// 文书档案内容
   FileInputStream fis = new FileInputStream(path);
   PDFParser p = new PDFParser(fis);
   p.parse();
   PDFTextStripper ts = new PDFTextStripper();
   content.append(ts.getText(p.getPDDocument()));
   fis.close();
   return content.toString().trim();
}

// 读取word,只可以读取文本内容 图片不行
public static String readWord(String path) throws Exception {

   StringBuffer content = new StringBuffer(“”);// 文书档案内容
   HWPFDocument doc = new HWPFDocument(new FileInputStream(path));
   Range range = doc.getRange();
   int paragraphCount = range.numParagraphs();// 段落
   for (int i = 0; i < paragraphCount; i++) {// 遍历段落读取数据
    Paragraph pp = range.getParagraph(i);
    content.append(pp.text());
   }
   return content.toString().trim();
}

// 读取text
public static String readTxt(String path) {
   StringBuffer content = new StringBuffer(“”);// 文书档案内容
   try {
    FileReader reader = new FileReader(path);
    BufferedReader br = new BufferedReader(reader);
    String s1 = null;

    while ((s1 = br.readLine()) != null) {
     content.append(s1 + “\r”);
    }
    br.close();
    reader.close();
   } catch (IOException e) {
    e.printStackTrace();
   }
   return content.toString().trim();
}

}

java常用类的接纳方法

1:excel转pdf出现乱码:

Interger:整数档次

    第三回excel转pdf是大功告成的,第一回始发前边皆是乱码,是因为自个儿的pdf转excel方法出现的标题,消除办法是运用java本身底层的法子(详见下方代码)。

1、属性。

 public static boolean getLicense()
{
        boolean result = false;
        try {
            InputStream is =
Thread.currentThread().getContextClassLoader()
                  
 .getResourceAsStream(“license.xml”); // 
license.xml应放在..\WebRoot\WEB-INF\classes路径下
            License aposeLic = new
License();
           
aposeLic.setLicense(is);
            result = true;
        } catch (Exception e)
{               
            e.printStackTrace();
        }
        return result;
    }
    
    
    public static void
excelTransferPdf(String excelPath,String pdfPath) {
        if (!getLicense()) {
            System.out.println(“license
faile”);
            return;
        }
        
        try {     
            Workbook wb = new
Workbook(excelPath);
            FileOutputStream fileOS = new
FileOutputStream(new File(pdfPath));
            wb.save(fileOS,
com.aspose.cells.SaveFormat.PDF);
            fileOS.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

static int MAX_VALUE:再次来到最大的整型数;
static int MIN_VALUE:重返最小的整型数;
static Class TYPE :重临当前项目。

贰:excel转pdf出现折行。

例子:
代码:
System.out.println(“Integer.MAX_VALUE: ” + Integer.MAX_VALUE );
结果为:Integer.MAX_VALUE: 2147483647
 

  excel转pdf出现折行的图景尤其广阔,因为在程序运转进程中多数字段是抓取的,你不可能看清你的excel转成pdf会有几页,所以这一年你就无须随意设置excel的预览格式,将excel的单元格式设置自动换行。

2、构造函数。

三:抓取字段显示结果不完整:。

Integer(int value) :通过贰个int的门类构造对象;
Integer(String s) :通过1个String的花色构造对象;

  当你未安装单元格大小而又不曾设置单元格自动换行,举例您的A1捌单元格里面包车型地铁字段抢先了单元格的尺寸你还一贯不设置单元格大小而又尚未安装单元格自动换行,就将抓取的字段填充在B1八单元格里面,那么打字与印刷出来的pdf文件A1八单元格高出单元相当的始末是不予展现的,此时你照旧将抓取字段填充在C18单元格内要么将改造A1八单元格格式

例子:
代码:
Integer i = new Integer(“1234”);
变动了3个值为1234的Integer对象。
 

四:excel转PDF字段内容无故中间有个别换行:

3、方法。
说明:

  那是自家遇见的最坑的1个地点,这年你只须求在excel单元格里面安装自动换行就能够,无需代码强行自动换行(强行换行有希望只出现多行数据只体现一行)。同时您必要如下代码:

  1. 享有办法均为public;
  2. 挥洒格式:〔修饰符〕 <再次来到类型>
    <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s)
    表示:此格局(parseInt)为类措施(static),重临类型为(int),方法所需参数为String类型。

/**
     *
得到2个字符串的长度,展现的尺寸,四在那之中夏族民共和国字或日希腊语长度为1,英文字符长度为0.伍
     *
     * @param String
     *            s 要求得到长度的字符串
     * @return int 得到的字符串长度
     */
    public static double getLength(String s) {
        double valueLength = 0;
        if (s == null) {
            return 0;
        }
        String chinese = “[\u4e00-\u9fa5]”;
        //
获取字段值的长短,假如含汉语字符,则各样汉语字符长度为二,否则为一
        for (int i = 0; i < s.length(); i++) {
            // 获取一个字符
            String temp = s.substring(i, i + 1);
            // 判定是还是不是为中文字符
            if (temp.matches(chinese)) {
                // 普通话字符长度为2
                valueLength += 2;
            } else {
                // 其余字符长度为1
                valueLength += 1;
            }
        }
        // 进位取整
        return Math.ceil(valueLength);
    }

 

    /**
     * 依据字符串长度获取行高
     *
     * @param str
     * @return
     */
    public static Float getRowHeight(String str) {

  1. byteValue():赚取用byte类型表示的平头;
  2. int compareTo(Integer anotherInteger)
    :相比多少个整数。相等时再次来到0;小于时回来负数;大于时回来正数。

        Integer lineCount = (int) (getLength(str) / 64) + 1;
        if (str.contains(“\n”)) {
            Integer tempLineCount = 1;
            String[] lines = str.split(“\n”);
            for (String line : lines) {
                Integer everyLineCount = (int) (getLength(line) / 64) +
1;
                tempLineCount += everyLineCount;
            }
            lineCount = lineCount >= tempLineCount ? lineCount :
tempLineCount;
        }
        Float rowHeight = (float) (lineCount * 20);
        return rowHeight;
    }

例子:
代码:

你必要先拿到抓取的字符串的长度,然后经过那些方法计算行高,再将excel需求填写的该行用Java代码设置行高(行高单位是像素),不过假诺出现自个儿下边说的字段内容无故中间部分换行,那么你获取的行高就会相差,今年你须求改变这几个地点—–>>>>Float rowHeight = (float) (lineCount * X); 
x的值一定要安装的大学一年级行,以免出现那种场所!

Integer i = new Integer(1234);
System.out.println(“i.compareTo: ” + i.compareTo(new Integer(123)) );
结果为:i.compareTo: 1
 

 

 

  1. int compareTo(Object o)
    :将该整数与其余类进行相比。纵然o也为Integer类,举行艺术贰的操作;不然,抛出ClassCastException极度。
  2. static Integer decode(String nm) :将字符串调换为整数。
  3. double doubleValue() :获得该整数的双精度表示。
  4. boolean equals(Object obj) :相比四个目标。
  5. float floatValue() :赚取该整数的浮点数表示。
  6. static Integer getInteger(String nm) :依照钦点名明显系统特征值。
  7. static Integer getInteger(String nm, int val) :上面的重载。
  8. static Integer getInteger(String nm, Integer val) :上边的重载。
  9. int hashCode() :重回该整数类型的哈希表码。
  10. int intValue() : 重返该整型数所表示的平头。
  11. long longValue() :再次来到该整型数所表示的长整数。
  12. static int parseInt(String s)
    :将字符串变换到整数。s必须是时进制数组成,不然抛出NumberFormatException卓殊。
  13. static int parseInt(String s, int radix)
    :以radix为基数radix再次回到s的十进制数。所谓的基数,正是“几进制”。

例子:
代码:

String s1 = new String(“1010”);
System.out.println(“Integer.parseInt(String s, int radix): ” +
Integer.parseInt(s1,2) );
结果为:Integer.parseInt(String s, int radix): 10
 

 

  1. short shortValue() :再次回到该整型数所表示的短整数。
  2. static String toBinaryString(int i) :将整数转为贰进制数的字符串。
  3. static String toHexString(int i) :将整数转为十6进制数的字符串。
  4. static String toOctalString(int i) :将整数转为8进制数的字符串。
  5. String toString() :将该整数类型调换为字符串。
  6. static String toString(int i)
    :将该整数类型转换为字符串。差异的是,此为类措施。
  7. static String toString(int i, int radix)
    :将整数i以基数radix的款式转形成字符串。

例子:
代码:
int i1 = 54321;
System.out.println(“Integer.toString(int i, int radix): ” +
Integer.toString(i1,16) );
结果为:Integer.toString(int i, int radix): d431

 

  1. static Integer valueOf(String s) :将字符串转变来整数类型。
  2. static Integer valueOf(String s, int radix)
    :将字符串以基数radix的供给调换到整数类型。
     

Float类的选择方式

Float:实数类型

1、属性。

  1. static float MAX_VALUE :
    再次回到最大浮点数,在差异硬件平马赛由Float.intBitsToFloat(0x柒f柒fffff)总结得出。
  2. static float MIN_VALUE :
    再次回到最小浮点数,在区别硬件平马赛由Float.intBitsToFloat(0x一)总计得出。
  3. static float NaN :
    表示非数值类型的浮点数,在差别硬件平杜阿拉由Float.intBitsToFloat(0x七fc00000)计算得出。
  4. static float
    NEGATIVE_INFINITY:再次回到负无穷浮点数,在分歧硬件平弗罗茨瓦夫由Float.intBitsToFloat(0xff700000)总括得出。
  5. static float POSITIVE_INFINITY
    :再次回到正无穷浮点数,在不相同硬件平苏州由Float.intBitsToFloat(0x7f七千00)总计得出。
  6. static Class TYPE :再次来到当前项目。

2、构造函数。

Float(double value) :以double类型为参数构造Float对象。
Float(float value) :以Float类型为参数构造Float对象。
Float(String s) :以String类型为参数构造Float对象。

3、方法。
说明:

  1. 持有办法均为public;
  2. 挥洒格式:〔修饰符〕 <重返类型>
    <方法名(〔参数列表〕)>
    如:
    static int parseInt(String s)
    表示:此方法(parseInt)为类格局(static),再次回到类型为(int),方法所需参数为String类型。

 

  1. byte byteValue() :再次回到以字节表示的浮点数。
  2. static int compare(float f一, float f二)
    :此为类措施,相比f1和f二。也便是new Float(f壹).compareTo(new
    Float(f二))。假如f1与f2相等,重返0;小于关系,重返负数;大于关系,重返正数。
  3. int compareTo(Float anotherFloat)
    :此为对象方法,当前目的与anotherFloat相比较。与二的比较规则同样。
  4. int compareTo(Object o)
    :当前目的与o举办比较,假诺o属于Float类,那么,也等于三;借使是其余类,则抛出ClassCastException极度。
  5. double doubleValue() :重回浮点数的双精度值。
  6. boolean equals(Object obj)
    :比较当前Float对象与obj的内容是不是一致。大多数气象是相比较多少个Float对象的值是或不是等于,相当于f1.floatValue()
    == f2.floatValue()的值。与2、三、四不相同的是:7回去boolean型。
  7. static int floatToIntBits(float value):依据IEEE
    75肆中间转播成float并出口它的拾进制数值。
  8. float floatValue() :再次回到该浮点数对象的浮点数值。
  9. int hashCode() :重回该Float对象的哈希表码。
  10. int intValue() :重回该Float对象的整数值(整数片段)。
  11. boolean isInfinite() :判定该Float对象是还是不是是无穷。
  12. static boolean isInfinite(float v)
    :与1一好像,分化的是:此为类措施,剖断的是v。
  13. boolean isNaN() :判定该Float对象是否为非数值。
  14. static boolean isNaN(float v) :功用与1三1律,只可是决断v。
  15. long longValue() :再次来到该Float对象的长整数值。
  16. static float parseFloat(String s) :将字符串转换来浮点数。
  17. short shortValue() :重回该Float对象的短整数值。
  18. String toString() :将该Float对象转换来字符串。
  19. static String toString(float f) :成效与18同样,只是转变f。
  20. static Float valueOf(String s) :将字符串转换到浮点数。

例子:
代码:
Float f = new Float(1237.45);
Float fs = new Float(“123.45”);
Float fd = new Float(1234146865679824657987947924623724749.16416925);

System.out.println(“f.compare(fs): ” + f.compareTo(fs) );
System.out.println(“f.compareTo(fd): ” + f.compareTo(fd) );
System.out.println(“Float.compare(1.23f,3.25f): ” +
Float.compare(1.23f,3.25f) );
结果为:
f.compare(fs): 1
f.compareTo(fd): -1
Float.compare(1.23f,3.25f): -1

代码:
Float f = new Float(1237.45);
System.out.println(“f.equals(fs): ” + f.equals(fs) );
结果为:f.equals(fs): false

Double类的使用办法

Double:双精度类型

发表评论

电子邮件地址不会被公开。 必填项已用*标注