excel轉換java
『壹』 能不能用java類實現把EXCEL文件轉化成PDF文件
可以使用Spire.XLS for Java實現把Excel轉為PDF文檔。
首先,您需要在 Java 程序中添加 Spire.Xls.jar 文件作為依賴項。您可以從這個鏈接下載 JAR 文件;如果您使用Maven,則可以通過在 pom.xml 文件中添加以下代碼導入 JAR 文件。
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>https://repo.e-iceblue.cn/repository/maven-public/</url>
</repository></repositories><dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>5.3.3</version>
</dependency></dependencies>
將整個 Excel 文件轉換為 PDF
以下是將整個 Excel 文檔轉換為 PDF 的步驟。
創建一個Workbook對象。
使用Workbook.loadFromFile()方法載入示例 Excel 文檔。
通過Workbook.getConverterSetting()方法返回的ConverterSetting對象下的方法設置 Excel 到 PDF 的轉換選項。
使用Workbook.saveToFile()方法將整個 Excel 文檔轉換為 PDF。
代碼如下:
import com.spire.xls.FileFormat;import com.spire.xls.Workbook;public class ConvertExcelToPdf {
public static void main(String[] args) {
//創建一個Workbook實例並載入Excel文件
Workbook workbook = new Workbook();
workbook.loadFromFile("C:\Users\Administrator\Desktop\Sample.xlsx");
//設置轉換後的PDF頁面高寬適應工作表的內容大小
workbook.getConverterSetting().setSheetFitToPage(true);
//將生成的文檔保存到指定路徑
workbook.saveToFile("output/ExcelToPdf", FileFormat.PDF);
}
}
『貳』 如何用JAVA把excel文件轉換成PDF文件
推薦下面的方法都是免費的:
方法一:使用虛擬列印機pdf factory即可,而且其他格式文件只要是能夠列印,選擇這個虛擬列印機,都可以做成PDF文件,很簡單實用;
方法二:使用專門的轉換軟體,把文件轉成PDF文件;
方法三:用其他虛擬列印機轉成PDF文件。
方法四:用WPS本身自帶的轉換功能轉成PDF文件
『叄』 用Excel公式實現文本轉Java輸出文本的問題
public class Excel {
private jxl.Workbook rwb = null;
/**
* 得到當前工作薄的總列數
*
* @parma sheetIndex 工作薄號
* @return int
*/
public int getColCount(int sheetIndex) {
int colCnt = 0;
try {
jxl.Sheet rs = rwb.getSheet(sheetIndex);
colCnt = rs.getColumns();
} catch (Exception e) {
colCnt = 0;
} finally {
try {
} catch (Exception e) {
colCnt = 0;
}
}
return colCnt;
}
/**
* 得到當前工作薄的總行數
*
* @parma sheetIndex 工作薄號
* @return int
*/
public int getRowCount(int sheetIndex) {
int colCnt = 0;
try {
jxl.Sheet rs = rwb.getSheet(sheetIndex);
colCnt = rs.getRows();
} catch (Exception e) {
colCnt = 0;
} finally {
try {
} catch (Exception e) {
colCnt = 0;
}
}
return colCnt;
}
/**
* 打開Excel.
*
* @parma fileName Excel文件名+文件路徑(絕對路徑)
* @return boolean
*/
public boolean openExcel(String fileName) {
boolean Rtn = false;
try {
is = new FileInputStream(fileName);
rwb = Workbook.getWorkbook(is);
Rtn = true;
} catch (Exception e) {
Rtn = false;
} finally {
try {} catch (Exception e) {}
}
return Rtn;
}
/**
* 取得某個單元格的內容。不論單元格是何種數據類型都將返回字元型。
*
* @parma int col 列號 int row 行號
* @return String
*/
public String getCellContent(int col, int row) {
String cellContent = "";
try {
// 默認打開第一張工作薄。
Sheet rs = rwb.getSheet(0);
// 取得某一單元格的內容
Cell c00 = rs.getCell(col, row);
cellContent = c00.getContents();
} catch (Exception e) {
cellContent = "";
} finally {
try {
} catch (Exception e) {
cellContent = "";
}
}
return cellContent;
}
public static void main(String[] args) {
Excel ex = new Excel();
ex.openExcel("你自己的*.xls");
for (int i = 1; i < ex.getRowCount(0); i++) {
for (int j = 0; j < ex.getColCount(0); j++) {
System.out.println(ex.getCellContent(j, i));
}
}
}
}
『肆』 如何用java來將excel文件轉化為html文件問題
可以導入spire.xls.jar(只需導入這一個jar即可),直接下載jar包,然後解壓將lib文件夾下的jar文件導入java程序;如果創建的是Maven程序的話,需要在pom.xml文件中配置maven路徑並指定Free Spire.XLS for Java的依賴,導入,如下配置:
<repositories>
<repository>
<id>com.e-iceblue</id>
<url>http://repo.e-iceblue.cn/repository/maven-public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId> e-iceblue </groupId>
<artifactId>spire.xls</artifactId>
<version>2.2.0</version>
</dependency></dependencies>
完成導入後,參考如下代碼將excel轉為html:
import com.spire.xls.*;
public class ExcelToHtml {
public static void main(String[] args) {
//載入Excel工作表
Workbook wb = new Workbook();
wb.loadFromFile("test.xlsx");
//獲取工作表
Worksheet sheet = wb.getWorksheets().get(0);
//調用方法將Excel保存為HTML
sheet.saveToHtml("ToHtml.html");
}
}
『伍』 如何將java數據轉換成Excel表格
package common.util;
import jxl.*;
import jxl.format.UnderlineStyle;
import jxl.write.*;
import jxl.write.Number;
import jxl.write.Boolean;
import java.io.*;
/**
* Created by IntelliJ IDEA.
* User: xl
* Date: 2005-7-17
* Time: 9:33:22
* To change this template use File | Settings | File Templates.
*/
public class ExcelHandle
{
public ExcelHandle()
{
}
/**
* 讀取Excel
*
* @param filePath
*/
public static void readExcel(String filePath)
{
try
{
InputStream is = new FileInputStream(filePath);
Workbook rwb = Workbook.getWorkbook(is);
//Sheet st = rwb.getSheet("0")這里有兩種方法獲取sheet表,1為名字,而為下標,從0開始
Sheet st = rwb.getSheet("original");
Cell c00 = st.getCell(0,0);
//通用的獲取cell值的方式,返回字元串
String strc00 = c00.getContents();
//獲得cell具體類型值的方式
if(c00.getType() == CellType.LABEL)
{
LabelCell labelc00 = (LabelCell)c00;
strc00 = labelc00.getString();
}
//輸出
System.out.println(strc00);
//關閉
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 輸出Excel
*
* @param os
*/
public static void writeExcel(OutputStream os)
{
try
{
/**
* 只能通過API提供的工廠方法來創建Workbook,而不能使用WritableWorkbook的構造函數,
* 因為類WritableWorkbook的構造函數為protected類型
* method(1)直接從目標文件中讀取WritableWorkbook wwb = Workbook.createWorkbook(new File(targetfile));
* method(2)如下實例所示 將WritableWorkbook直接寫入到輸出流
*/
WritableWorkbook wwb = Workbook.createWorkbook(os);
//創建Excel工作表 指定名稱和位置
WritableSheet ws = wwb.createSheet("Test Sheet 1",0);
//**************往工作表中添加數據*****************
//1.添加Label對象
Label label = new Label(0,0,"this is a label test");
ws.addCell(label);
//添加帶有字型Formatting對象
WritableFont wf = new WritableFont(WritableFont.TIMES,18,WritableFont.BOLD,true);
WritableCellFormat wcf = new WritableCellFormat(wf);
Label labelcf = new Label(1,0,"this is a label test",wcf);
ws.addCell(labelcf);
//添加帶有字體顏色的Formatting對象
WritableFont wfc = new WritableFont(WritableFont.ARIAL,10,WritableFont.NO_BOLD,false,
UnderlineStyle.NO_UNDERLINE,jxl.format.Colour.RED);
WritableCellFormat wcfFC = new WritableCellFormat(wfc);
Label labelCF = new Label(1,0,"This is a Label Cell",wcfFC);
ws.addCell(labelCF);
//2.添加Number對象
Number labelN = new Number(0,1,3.1415926);
ws.addCell(labelN);
//添加帶有formatting的Number對象
NumberFormat nf = new NumberFormat("#.##");
WritableCellFormat wcfN = new WritableCellFormat(nf);
Number labelNF = new jxl.write.Number(1,1,3.1415926,wcfN);
ws.addCell(labelNF);
//3.添加Boolean對象
Boolean labelB = new jxl.write.Boolean(0,2,false);
ws.addCell(labelB);
//4.添加DateTime對象
jxl.write.DateTime labelDT = new jxl.write.DateTime(0,3,new java.util.Date());
ws.addCell(labelDT);
//添加帶有formatting的DateFormat對象
DateFormat df = new DateFormat("dd MM yyyy hh:mm:ss");
WritableCellFormat wcfDF = new WritableCellFormat(df);
DateTime labelDTF = new DateTime(1,3,new java.util.Date(),wcfDF);
ws.addCell(labelDTF);
//添加圖片對象,jxl只支持png格式圖片
File image = new File("f:\\2.png");
WritableImage wimage = new WritableImage(0,1,2,2,image);
ws.addImage(wimage);
//寫入工作表
wwb.write();
wwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
/**
* 拷貝後,進行修改,其中file1為被對象,file2為修改後創建的對象
* 盡單元格原有的格式化修飾是不能去掉的,我們還是可以將新的單元格修飾加上去,
* 以使單元格的內容以不同的形式表現
* @param file1
* @param file2
*/
public static void modifyExcel(File file1,File file2)
{
try
{
Workbook rwb = Workbook.getWorkbook(file1);
WritableWorkbook wwb = Workbook.createWorkbook(file2,rwb);//
WritableSheet ws = wwb.getSheet(0);
WritableCell wc = ws.getWritableCell(0,0);
//判斷單元格的類型,做出相應的轉換
if(wc.getType == CellType.LABEL)
{
Label label = (Label)wc;
label.setString("The value has been modified");
}
wwb.write();
wwb.close();
rwb.close();
}
catch(Exception e)
{
e.printStackTrace();
}
}
//測試
public static void main(String[] args)
{
try
{
//讀Excel
ExcelHandle.readExcel("f:/testRead.xls");
//輸出Excel
File fileWrite = new File("f:/testWrite.xls");
fileWrite.createNewFile();
OutputStream os = new FileOutputStream(fileWrite);
ExcelHandle.writeExcel(os);
//修改Excel
ExcelHandle.modifyExcel(new file(""),new File(""));
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
『陸』 excel中日期格式是數字,想轉成java的日期格式,遇到了問題
java讀取excel時間格式出現數字的處理方法:
Excel存儲日期、時間均以數值類型進行存儲,讀取時POI先判斷是是否是數值類型,再進行判斷轉化
1、數值格式(CELL_TYPE_NUMERIC):
1.純數值格式:getNumericCellValue() 直接獲取數據
2.日期格式:處理yyyy-MM-dd, d/m/yyyy h:mm, HH:mm 等不含文字的日期格式
1).判斷是否是日期格式:HSSFDateUtil.isCellDateFormatted(cell)
2).判斷是日期或者時間
cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("h:mm")
OR: cell.getCellStyle().getDataFormat() == HSSFDataFormat.getBuiltinFormat("yyyy-MM-dd")
3.自定義日期格式:處理yyyy年m月d日,h時mm分,yyyy年m月等含文字的日期格式
判斷cell.getCellStyle().getDataFormat()值,解析數值格式
yyyy年m月d日----->31
m月d日---->58
h時mm分--->32
舉例說明:
private String parseExcel(Cell cell) {
String result = new String();
『柒』 如何將excel中的數據導入到java程序
找一個api,網上有的,可以操作excel,裡面有給定的函數,看懂後直接調用就可以了
『捌』 如何利用excel生成java類
如果你想將Excel裡面的表生成Java代碼來實現你原來那個表的話,這是不可能的。
不過你可以將Excel文件轉換為java文件, 就是將.xls改為.java 就OK 了,你試試吧!看能不能夠幫到你嘛!
『玖』 如何把excel數據導入java
用第三方組件poi讀取,給個例子你參考一下
public class ApachePOIExcelRead {
private static final String FILE_NAME = "/tmp/MyFirstExcel.xlsx";
public static void main(String[] args) {
try {
FileInputStream excelFile = new FileInputStream(new File(FILE_NAME));
Workbook workbook = new XSSFWorkbook(excelFile);
Sheet datatypeSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = datatypeSheet.iterator();
while (iterator.hasNext()) {
Row currentRow = iterator.next();
Iterator<Cell> cellIterator = currentRow.iterator();
while (cellIterator.hasNext()) {
Cell currentCell = cellIterator.next();
//getCellTypeEnum shown as deprecated for version 3.15
//getCellTypeEnum ill be renamed to getCellType starting from version 4.0
if (currentCell.getCellTypeEnum() == CellType.STRING) {
System.out.print(currentCell.getStringCellValue() + "--");
} else if (currentCell.getCellTypeEnum() == CellType.NUMERIC) {
System.out.print(currentCell.getNumericCellValue() + "--");
}
}
System.out.println();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
『拾』 將Excel文件數據轉成java bean 時數據錯亂,求指導
我這有個例子你看看吧。。。這個只是如何把數據寫入excel,沒有設計到資料庫。。你把資料庫里的數據取出來然後照著這個例子把數據放進去到excel表格里就行了
public class Demo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("開始");
try{
//打開文件
WritableWorkbook book=Workbook.createWorkbook(new File("e://測試.xls"));
WritableSheet sheet=book.createSheet("第一頁",0);
//生成名為"第一頁的工作表",參數0表示這是第一頁
Label label=new Label(0,0,"test");
//在label對象的構造函數中指定單元格位置是是第一列第一行(0,0)以及單元格內容為test
sheet.addCell(label);
//將定義好的單元格添加到工作表中
/*生成一個保存數字的單元格
必須使用Number的完整包路徑,否則有語法歧義
單元格位置是第二列,第一行,值為789.123*/
jxl.write.Number number=new jxl.write.Number(1,0,123);
sheet.addCell(number);
//寫入數據並關閉文件
book.write();
book.close();
}catch(Exception e){
System.out.println(e);
}
System.out.println("結束");
}
}