求问大神怎么能把java程序加到excel里面

求问大神怎么能把java程序加到excel里面,第1张

import java.io.BufferedInputStream

import java.io.File

import java.io.FileInputStream

import java.io.FileNotFoundException

import java.io.IOException

import java.text.DecimalFormat

import java.text.SimpleDateFormat

import java.util.ArrayList

import java.util.Arrays

import java.util.Date

import java.util.List

import org.apache.poi.hssf.usermodel.HSSFCell

import org.apache.poi.hssf.usermodel.HSSFDateUtil

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

public class ReadExcel2 {

/**

* @param args

* @throws IOException

* @throws FileNotFoundException

*/

public static void main(String[] args) throws FileNotFoundException, IOException {

File file = new File("src/test.xls")

String[][] data = getData(file, 0)

printStringArray(data)

}

public static void printStringArray(String[][] data){

for(int i =0i<data.lengthi++){

for(int j=0j<data[i].lengthj++){

System.out.print(data[i][j]+"\t")

}

System.out.print("\n")

}

}

/**

*

* 读取Excel的内容,第一维数组存储的是一行帆裤中格列的值,二维数组存储的是多少个行

* @param file 读取数据的源Excel

* @param ignoreRows 读取数据忽袭余略拍轿滚的行数,比喻行头不需要读入 忽略的行数为1

* @return 读出的Excel中数据的内容

* @throws FileNotFoundException

* @throws IOException

*/

public static String[][] getData(File file, int ignoreRows)

throws FileNotFoundException, IOException {

List<String[]>result = new ArrayList<String[]>()

int rowSize = 0

BufferedInputStream in = new BufferedInputStream(new FileInputStream(

file))

// 打开HSSFWorkbook

POIFSFileSystem fs = new POIFSFileSystem(in)

HSSFWorkbook wb = new HSSFWorkbook(fs)

HSSFCell cell = null

for (int sheetIndex = 0sheetIndex <wb.getNumberOfSheets()sheetIndex++) {

HSSFSheet st = wb.getSheetAt(sheetIndex)

// 第一行为标题,不取

for (int rowIndex = ignoreRowsrowIndex <= st.getLastRowNum()rowIndex++) {

HSSFRow row = st.getRow(rowIndex)

if (row == null) {

continue

}

int tempRowSize = row.getLastCellNum() + 1

if (tempRowSize >rowSize) {

rowSize = tempRowSize

}

String[] values = new String[rowSize]

Arrays.fill(values, "")

boolean hasValue = false

for (short columnIndex = 0columnIndex <= row.getLastCellNum()columnIndex++) {

String value = ""

cell = row.getCell(columnIndex)

if (cell != null) {

// 注意:一定要设成这个,否则可能会出现乱码

cell.setEncoding(HSSFCell.ENCODING_UTF_16)

switch (cell.getCellType()) {

case HSSFCell.CELL_TYPE_STRING:

value = cell.getStringCellValue()

break

case HSSFCell.CELL_TYPE_NUMERIC:

if (HSSFDateUtil.isCellDateFormatted(cell)) {

Date date = cell.getDateCellValue()

if (date != null) {

value = new SimpleDateFormat("yyyy-MM-dd")

.format(date)

} else {

value = ""

}

} else {

value = new DecimalFormat("0").format(cell

.getNumericCellValue())

}

break

case HSSFCell.CELL_TYPE_FORMULA:

// 导入时如果为公式生成的数据则无值

if (!cell.getStringCellValue().equals("")) {

value = cell.getStringCellValue()

} else {

value = cell.getNumericCellValue() + ""

}

break

case HSSFCell.CELL_TYPE_BLANK:

break

case HSSFCell.CELL_TYPE_ERROR:

value = ""

break

case HSSFCell.CELL_TYPE_BOOLEAN:

value = (cell.getBooleanCellValue() == true ? "Y"

: "N")

break

default:

value = ""

}

}

if (columnIndex == 0 &&value.trim().equals("")) {

break

}

values[columnIndex] = rightTrim(value)

hasValue = true

}

if (hasValue) {

result.add(values)

}

}

}

in.close()

String[][] returnArray = new String[result.size()][rowSize]

for (int i = 0i <returnArray.lengthi++) {

returnArray[i] = (String[]) result.get(i)

}

return returnArray

}

/**

*

* 去掉字符串右边的空格

* @param str 要处理的字符串

* @return 处理后的字符串

*/

public static String rightTrim(String str) {

if (str == null) {

return ""

}

int length = str.length()

for (int i = length - 1i >= 0i--) {

if (str.charAt(i) != 0x20) {

break

}

length--

}

return str.substring(0, length)

}

}

首先要困举引用EXCELL类李塌( Microsoft Excel 11.0 Object Library)

dim XX as string '这个哪尺圆是你计算出的结果,我以字符类型为例

Dim xltmp As Excel.Application

Dim xlBook As Excel.Workbook

Dim xlsheet As Excel.Worksheet

Set xltmp = New Excel.Application

xltmp.Visible = False

Set xlBook = xltmp.Workbooks.Add

Set xlsheet = xlBook.Worksheets(1)

xlBook.Worksheets(1).Cells(5,3) =xx

xlBook.Close True

Set xlsheet = Nothing

Set xlBook = Nothing

xltmp.Quit

Set xltmp = Nothing


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12411928.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存