62,620
社区成员
发帖
与我相关
我的任务
分享
package test;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.math.BigDecimal;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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 ExcelUpdate {
/**
* Logger for this class
*/
private static final Log log = LogFactory.getLog(ExcelUpdate.class);
public void update(String saveUploadFilePath, String downloadfilePath) {
InputStream is = null;
OutputStream fo = null;
try {
//读取saveUploadFilePath文件
is = new FileInputStream(saveUploadFilePath);
HSSFWorkbook workbook = new HSSFWorkbook(is);
HSSFSheet sheet = workbook.getSheetAt(0);
int rowCount = sheet.getLastRowNum();//获取sheet的行数
for (int i = 0; i < rowCount; i++) {
HSSFRow row = sheet.getRow(i);
updateRow(row);
}
//将修改后的内容保存到downloadfilePath文件中
fo = new FileOutputStream(downloadfilePath);
workbook.write(fo);
fo.close();
} catch (Exception e) {
log.error("updateExcel error:" + e);
} finally {
if (fo != null)
try {
fo.close();
} catch (IOException e) {
log.error("updateExcel error:" + e);
}
if (is != null)
try {
is.close();
} catch (IOException e) {
log.error("updateExcel error:" + e);
}
}
}
public void updateRow(HSSFRow row) {
HSSFCell cell = row.getCell((short) 4);//库存数量
int cellType = cell.getCellType();
//如果为数字类型
if (cellType == HSSFCell.CELL_TYPE_NUMERIC) {
BigDecimal value = new BigDecimal(cell.getNumericCellValue());
//库存数量为 0 的记录修改为 50
BigDecimal upValue = new BigDecimal(50);
if (upValue.compareTo(value) == 0)
cell.setCellValue(upValue.doubleValue());
}
}
}