當前位置:首頁 » 編程語言 » javapoiexcel

javapoiexcel

發布時間: 2023-03-15 19:54:40

A. java poi導出excel

用spire.xls.jar也可以導出excel,代碼更簡單

  1. import com.spire.xls.ExcelVersion;

  2. import com.spire.xls.Workbook;

  3. import com.spire.xls.Worksheet;


  4. public class InsertArray {


  5. public static void main(String[] args) {


  6. //創建Workbook對象

  7. Workbook wb = new Workbook();

  8. //獲取第一張工作表

  9. Worksheet sheet = wb.getWorksheets().get(0);

  10. //定義一維數據

  11. String[] oneDimensionalArray = new String[]{"蘋果", "梨子", "葡萄", "香蕉"};

  12. //將數組從指定單個格開始寫入工作表,true表示縱向寫入,設置為false為橫向寫入

  13. sheet.insertArray(oneDimensionalArray, 1, 1, true);

  14. //定義二維數組

  15. String[][] twoDimensionalArray = new String[][]{

  16. {"姓名", "年齡", "性別", "學歷"},

  17. {"小張", "25", "男", "本科"},

  18. {"小王", "24", "男", "本科"},

  19. {"小李", "26", "女", "本科"}

  20. };

  21. //從指定單元格開始寫入二維數組到工作表

  22. sheet.insertArray(twoDimensionalArray, 1, 3);

  23. //保存文檔

  24. wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);

  25. }

  26. }

B. java poi怎麼獲取Excel sheet頁的數量

java poi獲取Excel sheet頁的數量方法如下:

在導出excel時候需要導出多個sheet頁,後面sheet頁會覆蓋前面sheet頁的內容。
這么寫代碼:
HSSFWorkbook workbook = null;
workbook=new HSSFWorkbook();

for(){

//沒有現成的文件需要重新計算
HSSFSheet sheet_sin =workbook.createSheet(month_query1);
sheet_sin= makeJDL(year_query,month_query1,sheet_sin,workbook);

}

C. java使用poi讀取excel時,電話號碼變成了科學計數法,整數變成double,怎麼改過來

為了防止數字變成科學計數法方式表示謹滑運,在源文件以及java代碼中都用文的方式去生成和解析excel,具體如下:

生成Excel時,設置單元格格式為STRING,即:

//關鍵代碼

HSSFCell cell = new HSSFCell();

cell.setCellType(HSSFCell.CELL_TYPE_STRING);

同理,解析的時候,首先要保證源excel文件中該單元格格式是文本類型的,然後在java代碼里用STRING類型去解析:

//關鍵代碼

String value = cell.getStringCellValue();

(3)javapoiexcel擴展閱讀;

在這里,將只介紹一祥梁些和格式設置有關的語句,假定workbook就是對一個工作簿的引用。在Java中,第一步要做的就是創建和設置字體和單元格的格式,然後再應用這些格式:

創建字體,設置其為紅色、粗體:

HSSFFont font = workbook.createFont();

font.setColor(HSSFFont.COLOR_RED);

font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);

D. java操作poi怎麼更改excel中的數據

修改完需要寫入,也就是保存一下的。
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

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;

public class ChangeCell {

@SuppressWarnings("deprecation")
public static void main(String[] args) {
String fileToBeRead = "C:\\exp.xls"; // excel位置
int coloum = 1; // 比如你要獲取第1列
try {
HSSFWorkbook workbook = new HSSFWorkbook(new FileInputStream(
fileToBeRead));
HSSFSheet sheet = workbook.getSheet("Sheet1");

for (int i = 0; i <= sheet.getLastRowNum(); i++) {
HSSFRow row = sheet.getRow((short) i);
if (null == row) {
continue;
} else {
HSSFCell cell = row.getCell((short) coloum);
if (null == cell) {
continue;
} else {
System.out.println(cell.getNumericCellValue());
int temp = (int) cell.getNumericCellValue();
cell.setCellValue(temp + 1);
}
}
}
FileOutputStream out = null;
try {
out = new FileOutputStream(fileToBeRead);
workbook.write(out);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

}

}

E. java用poi導出excel文件,打開導出的文件時報錯,怎麼辦

兩個原因:

1.你的excel模版本身有問題,可以嘗試新建一個模版。

2.你的excel使用了一些POI不支持的函數。

解決辦法:

另存是由excel重寫了完整的文件,可以解決問題。

關閉文件例子:

FileOutputStream os = new FileOutputStream("workbook.xls");

wb.write(os);

os.close();

F. 用javaPOI包的方法獲取excel中的行列號

XlsMain
.java

//該類有main方法,主要負責運行程序,同時該類中也包含了用poi讀取Excel(2003版)
import
java.io.FileInputStream;
import
java.io.IOException;
import
java.io.InputStream;
import
java.util.ArrayList;
import
java.util.List;
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;
/**
*
*
@author
Hongten</br>
*
*
參考地址:http://hao0610.iteye.com/blog/1160678
*
*/
public
class
XlsMain
{
public
static
void
main(String[]
args)
throws
IOException
{
XlsMain
xlsMain
=
new
XlsMain();
XlsDto
xls
=
null;
List<XlsDto>
list
=
xlsMain.readXls();
try
{
XlsDto2Excel.xlsDto2Excel(list);
}
catch
(Exception
e)
{
e.printStackTrace();
}
for
(int
i
=
0;
i
<
list.size();
i++)
{
xls
=
(XlsDto)
list.get(i);
System.out.println(xls.getXh()
+
"
"
+
xls.getXm()
+
"
"
+
xls.getYxsmc()
+
"
"
+
xls.getKcm()
+
"
"
+
xls.getCj());
}
}
/**
*
讀取xls文件內容
*
*
@return
List<XlsDto>對象
*
@throws
IOException
*
輸入/輸出(i/o)異常
*/
private
List<XlsDto>
readXls()
throws
IOException
{
InputStream
is
=
new
FileInputStream("pldrxkxxmb.xls");
HSSFWorkbook
hssfWorkbook
=
new
HSSFWorkbook(is);
XlsDto
xlsDto
=
null;
List<XlsDto>
list
=
new
ArrayList<XlsDto>();
//
循環工作表Sheet
for
(int
numSheet
=
0;
numSheet
<
hssfWorkbook.getNumberOfSheets();
numSheet++)
{
HSSFSheet
hssfSheet
=
hssfWorkbook.getSheetAt(numSheet);
if
(hssfSheet
==
null)
{
continue;
}
//
循環行Row
for
(int
rowNum
=
1;
rowNum
<=
hssfSheet.getLastRowNum();
rowNum++)
{
HSSFRow
hssfRow
=
hssfSheet.getRow(rowNum);
if
(hssfRow
==
null)
{
continue;
}
xlsDto
=
new
XlsDto();
//
循環列Cell
//
0學號
1姓名
2學院
3課程名
4
成績
//
for
(int
cellNum
=
0;
cellNum
<=4;
cellNum++)
{
HSSFCell
xh
=
hssfRow.getCell(0);
if
(xh
==
null)
{
continue;
}
xlsDto.setXh(getValue(xh));
HSSFCell
xm
=
hssfRow.getCell(1);
if
(xm
==
null)
{
continue;
}
xlsDto.setXm(getValue(xm));
HSSFCell
yxsmc
=
hssfRow.getCell(2);
if
(yxsmc
==
null)
{
continue;
}
xlsDto.setYxsmc(getValue(yxsmc));
HSSFCell
kcm
=
hssfRow.getCell(3);
if
(kcm
==
null)
{
continue;
}
xlsDto.setKcm(getValue(kcm));
HSSFCell
cj
=
hssfRow.getCell(4);
if
(cj
==
null)
{
continue;
}
xlsDto.setCj(Float.parseFloat(getValue(cj)));
list.add(xlsDto);
}
}
return
list;
}
/**
*
得到Excel表中的值
*
*
@param
hssfCell
*
Excel中的每一個格子
*
@return
Excel中每一個格子中的值
*/
@SuppressWarnings("static-access")
private
String
getValue(HSSFCell
hssfCell)
{
if
(hssfCell.getCellType()
==
hssfCell.CELL_TYPE_BOOLEAN)
{
//
返回布爾類型的值
return
String.valueOf(hssfCell.getBooleanCellValue());
}
else
if
(hssfCell.getCellType()
==
hssfCell.CELL_TYPE_NUMERIC)
{
//
返回數值類型的值
return
String.valueOf(hssfCell.getNumericCellValue());
}
else
{
//
返回字元串類型的值
return
String.valueOf(hssfCell.getStringCellValue());
}
}
}

G. java excel poi 怎麼導入

1、下載poi相關jar,maven的集成如下:(把${poi.version}替換成你要的版本)

<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>${poi.version}</version>
<scope>provided</scope>
</dependency>

2、根據poi相關api讀取sheet、row、cell,獲得excel的數據:

封裝row的對象,即每一行數據為一個對象,每個cell為對象里的一個屬性,

整個sheet的數據裝進集合里;

3、處理數據,可以對數據進行驗證或其他操作;

4、寫資料庫操作。

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:849
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:180
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:739
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:247
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:344
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:478
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:527
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:408
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:665
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:392