javapoiexcel
A. java poi導出excel
用spire.xls.jar也可以導出excel,代碼更簡單
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
import com.spire.xls.Worksheet;
public class InsertArray {
public static void main(String[] args) {
//創建Workbook對象
Workbook wb = new Workbook();
//獲取第一張工作表
Worksheet sheet = wb.getWorksheets().get(0);
//定義一維數據
String[] oneDimensionalArray = new String[]{"蘋果", "梨子", "葡萄", "香蕉"};
//將數組從指定單個格開始寫入工作表,true表示縱向寫入,設置為false為橫向寫入
sheet.insertArray(oneDimensionalArray, 1, 1, true);
//定義二維數組
String[][] twoDimensionalArray = new String[][]{
{"姓名", "年齡", "性別", "學歷"},
{"小張", "25", "男", "本科"},
{"小王", "24", "男", "本科"},
{"小李", "26", "女", "本科"}
};
//從指定單元格開始寫入二維數組到工作表
sheet.insertArray(twoDimensionalArray, 1, 3);
//保存文檔
wb.saveToFile("InsertArrays.xlsx", ExcelVersion.Version2016);
}
}
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、寫資料庫操作。