1、设置验证,首先要选择单元格的范围
CellRangeAddressList cellRegions = new CellRangeAddressList(1, 65535, 1, 1);
范围表示:选择第2行到第65535行,第二列
2、创建约束constraint
XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet)sheet);
//创建约束
var dropDownConstraint = helper.CreateExplicitListConstraint(column.DropdownValidation);
//创建验证规则
IDataValidation dropDownValidation = helper.CreateValidation(dropDownConstraint, cellRegions); //column.DropdownValidation是一个数组new string[]{"男","女"}
//设置约束提示信息
dropDownValidation.CreateErrorBox("错误&
需求描述:数据导出到Excel,新增对单元格的数据校验。如图:1、设置验证,首先要选择单元格的范围CellRangeAddressList cellRegions = new CellRangeAddressList(1, 65535, 1, 1); 范围表示:选择第2行到第65535行,第二列2、创建约束constraintXSSFDataValidationH...
using N
POI
.HSSF.UserModel;
using N
POI
.OpenXmlFormats.Spreadsheet;
using N
POI
.SS.UserModel;
using N
POI
.SS.Util;
using N
POI
.XSSF.UserModel;
using System;
using System.Collections.Gen..
在有些情况下(比如
Excel
引入),我们可能不允许用户在
Excel
随意输入一些无效
数据
,这时就要在模板中加一些
数据
有效性的
验证
。在
Excel
中,
设置
数据
有效性的方步骤如下:
(1)先选定一个区域;
(2)在菜单“
数据
数据
有效性”中
设置
数据
有效性
验证
(如图)。
同样,利用N
POI
,用代码也可以实现:
HSSFSheetsheet1=hssfworkboo...
注意是:XSSFDataValidationHelper,也即:XSSFDataValidationConstraint(4, operatorType, formula1, formula2)有Bug,HSSF*的没有问题
*
设置
Excel
Sheet
数据
填写有效性约束
* @param sheet 当前Sheet
* @param validationType 验
转自:http://www.iteye.com/problems/65041
import org.apache.
poi
.hssf.usermodel.DVConstraint;
import org.apache.
poi
.hssf.usermodel.HSSFDataValidation;
import org.apache.
poi
.hssf.usermodel.HSSFSheet;
//定义Cell
范围
,参数1:起始行数,参数2:结束行数,参数3:起始列数,参数4:结束列数
XSSFDataValidationHelper dvHelper = new XSSFDataValidationHelper((XSSFSheet)currSheet);
XSSFDataValidationHelper helper = new XSSFDataValidationHelper((XSSFSheet)sheet);//获得一个
数据
验证
Helper
var namelist = new string[] { "张三", "李四", "王五" };//创建一个数组作为
数据
源
CellRangeAddressList regions = new CellRangeAddressList...
要读取合并
单元格
的
数据
,需要使用 N
POI
库中的 CellRangeAddress 类来获取合并
单元格
的
范围
,并在处理每个
单元格
时判断它是否在合并
单元格
范围
内。以下是一个简单的示例代码:
```csharp
using N
POI
.SS.UserModel;
using N
POI
.XSSF.UserModel;
// 打开
Excel
文件
using (FileStream fs = new FileStream("test.xlsx", FileMode.Open, FileAccess.Read))
XSSFWorkbook workbook = new XSSFWorkbook(fs);
ISheet sheet = workbook.GetSheetAt(0);
// 遍历所有行
for (int i = 0; i <= sheet.LastRowNum; i++)
IRow row = sheet.GetRow(i);
if (row == null) continue;
// 遍历所有列
for (int j = 0; j < row.LastCellNum; j++)
ICell cell = row.GetCell(j);
if (cell == null) continue;
// 判断
单元格
是否在合并
单元格
范围
内
bool isMerged = false;
for (int k = 0; k < sheet.NumMergedRegions; k++)
CellRangeAddress range = sheet.GetMergedRegion(k);
if (range.IsInRange(i, j))
isMerged = true;
break;
// 如果
单元格
在合并
单元格
范围
内,则获取合并
单元格
的值
if (isMerged)
ICell firstCell = sheet.GetRow(range.FirstRow).GetCell(range.FirstColumn);
Console.WriteLine(firstCell.ToString());
Console.WriteLine(cell.ToString());
需要注意的是,由于合并
单元格
可能会跨越多行或多列,因此在判断
单元格
是否在合并
单元格
范围
内时需要使用 CellRangeAddress 类的 IsInRange 方法。此外,如果
单元格
在合并
单元格
范围
内,则需要获取合并
单元格
的第一个
单元格
的值。
跨域:The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
115195
跨域:The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
C# 爬虫,抓取网页数据
maomiketi:
web中切换详情信息和编辑功能
Wendy_WTT: