org.apache.poi.hssf.usermodel.HSSFCell
import
org.apache.poi.hssf.usermodel.HSSFCellStyle
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.poifs.filesystem.POIFSFileSystem
/**
*
@param
inputFile
输入模板文件路径
*
@param
outputFile
输入文件存放于服务器路径
*
@param
dataList
待导出数据
*
@throws
Exception
*
@roseuid:
*/
public
void
exportExcelFile(String
inputFile,
String
outputFile,
List
dataList)
throws
Exception
{
//用模板文件构造poi
POIFSFileSystem
fs
=
new
POIFSFileSystem(new
FileInputStream(inputFile))
//创建模板工作表
HSSFWorkbook
templatewb
=
new
HSSFWorkbook(fs)
//直接取模板第一个sheet对象
HSSFSheet
templateSheet
=
templatewb.getSheetAt(1)
//得到模板的第一个sheet的第一行对象
为了得到模板样式
HSSFRow
templateRow
=
templateSheet.getRow(0)
//HSSFSheet
timplateSheet
=
templatewb.getSheetAt(1)
//取得Excel文件的总列数
int
columns
=
templateSheet.getRow((short)
0).getPhysicalNumberOfCells()
Debug.println("columns
is
:
"
+
columns)
//创建样式数组
HSSFCellStyle
styleArray[]
=
new
HSSFCellStyle[columns]
//一次性创建所有列的样式放在数组里
for
(int
s
=
0
s
<
columns
s++)
{
//得到数组实例
styleArray[s]
=
templatewb.createCellStyle()
}
//循环对每一个单元格进行赋值
//定位行
for
(int
rowId
=
1
rowId
<
dataList.size()
rowId++)
{
//依次取第rowId行数据
每一个数据是valueList
List
valueList
=
(List)
dataList.get(rowId
-
1)
//定位列
for
(int
columnId
=
0
columnId
<
columns
columnId++)
{
//依次取出对应与colunmId列的值
//每一个单元格的值
String
dataValue
=
(String)
valueList.get(columnId)
//取出colunmId列的的style
//模板每一列的样式
HSSFCellStyle
style
=
styleArray[columnId]
//取模板第colunmId列的单元格对象
//模板单元格对象
HSSFCell
templateCell
=
templateRow.getCell((short)
columnId)
//创建一个新的rowId行
行对象
//新建的行对象
HSSFRow
hssfRow
=
templateSheet.createRow(rowId)
//创建新的rowId行
columnId列
单元格对象
//新建的单元格对象
HSSFCell
cell
=
hssfRow.createCell((short)
columnId)
//如果对应的模板单元格
样式为非锁定
if
(templateCell.getCellStyle().getLocked()
==
false)
{
//设置此列style为非锁定
style.setLocked(false)
//设置到新的单元格上
cell.setCellStyle(style)
}
//否则样式为锁定
else
{
//设置此列style为锁定
style.setLocked(true)
//设置到新单元格上
cell.setCellStyle(style)
}
//设置编码
cell.setEncoding(HSSFCell.ENCODING_UTF_16)
//Debug.println("dataValue
:
"
+
dataValue)
//设置值
统一为String
cell.setCellValue(dataValue)
}
}
//设置输入流
FileOutputStream
fOut
=
new
FileOutputStream(outputFile)
//将模板的内容写到输出文件上
templatewb.write(fOut)
fOut.flush()
// *** 作结束,关闭文件
fOut.close()
}
使用poi,具体实现\x0d\x0aHSSFCellStylestyle=null\x0d\x0a//创建表头style\x0d\x0aHSSFCellStylecellStyleTitle=workbook.createCellStyle()\x0d\x0acellStyleTitle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND)//填充单元格\x0d\x0acellStyleTitle.setFillForegroundColor(HSSFColor.YELLOW.index)\x0d\x0acellStyleTitle.setAlignment(HSSFCellStyle.ALIGN_CENTER)////居中显示\x0d\x0a\x0d\x0aHSSFRowtitleRow=sheet.createRow(0)\x0d\x0afor(inti=0i 回答于 2022-12-141、在打开的ie浏览器窗口右上方点击齿轮图标,选择“Internet选项”,如下图所示:
2、在打开的Internet选项窗口中,切换到安全栏,在安全选卡中点击“自定义级别”,如下图所示:
3、在“安全设置-Internet区域”界面找到“Java小程序脚本”、“活动脚本”,并将这两个选项都选择为“禁用”,然后点击确定,如下图所示:
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)