

难道有合并单元格的不能设置吗?
sheet.SetColumnWidth(0, 10); 的10我随便写的,因为只要写这句话就报错
/// <summary>
/// 生成excel
/// </summary>
/// <param name="dt"></param>
/// <param name="title"></param>
/// <param name="Sum"></param>
/// <returns></returns>
private HSSFWorkbook DealDataTable(List<DataTable> dt, List<string> title, List<string> Sum)
{
HSSFWorkbook saraly = new HSSFWorkbook();
DocumentSummaryInformation dsi = PropertySetFactory.CreateDocumentSummaryInformation();
dsi.Company = "广州xxxx公司";
saraly.DocumentSummaryInformation = dsi;
SummaryInformation si = PropertySetFactory.CreateSummaryInformation();
si.Subject = "";
saraly.SummaryInformation = si;
/*首行的标题*/
HSSFCellStyle fist1 = saraly.CreateCellStyle();
fist1.WrapText = false;
HSSFFont fist1Font = saraly.CreateFont();
fist1Font.Boldweight = HSSFFont.BOLDWEIGHT_BOLD;
fist1Font.FontHeight = 480;
fist1.SetFont(fist1Font);
fist1.Alignment = HSSFCellStyle.ALIGN_CENTER;
fist1.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
/*表头*/
HSSFCellStyle fist2 = saraly.CreateCellStyle();
fist2.WrapText = true;
HSSFFont fist2Font = saraly.CreateFont();
fist2Font.Boldweight = HSSFFont.BOLDWEIGHT_BOLD;
fist2.SetFont(fist2Font);
fist2.Alignment = HSSFCellStyle.ALIGN_CENTER;
fist2.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
/*内容*/
HSSFCellStyle context = saraly.CreateCellStyle();
context.WrapText = true;
HSSFFont font = saraly.CreateFont();
context.SetFont(font);
context.Alignment = HSSFCellStyle.ALIGN_CENTER;
context.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
/*红色文字的内容*/
HSSFCellStyle contextRed = saraly.CreateCellStyle();
contextRed.WrapText = true;
HSSFFont fontRed = saraly.CreateFont();
fontRed.Color = HSSFFont.COLOR_RED;
contextRed.SetFont(fontRed);
contextRed.Alignment = HSSFCellStyle.ALIGN_CENTER;
contextRed.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
/*红色背景的文字内容*/
HSSFCellStyle contextGood = saraly.CreateCellStyle();
contextGood.WrapText = true;
HSSFFont fontGood = saraly.CreateFont();
contextGood.SetFont(fontGood);
contextGood.Alignment = HSSFCellStyle.ALIGN_CENTER;
contextGood.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
HSSFPalette customPalette = saraly.GetCustomPalette();
customPalette.SetColorAtIndex(HSSFColor.LIGHT_BLUE.index, (byte) 228, (byte) 223, (byte)236);
contextGood.FillPattern=HSSFCellStyle.SOLID_FOREGROUND;
contextGood.FillForegroundColor = HSSFColor.LIGHT_BLUE.index;
/*循环表*/
for (int i = 0; i < dt.Count; i++)
{
HSSFSheet sheet = saraly.CreateSheet(title[i]);
int ColumnsCount = dt[i].Columns.Count;
if (dt[i].Columns.Contains("sysOutFlag"))
{
ColumnsCount = ColumnsCount - 1;
}
if (title[i] != "sheet1")
{
/*首行*/
HSSFRow rowTitle = sheet.CreateRow(0);
rowTitle.Height = 800;
HSSFCell cell = rowTitle.CreateCell(0);
cell.CellStyle = fist1;
cell.SetCellValue(title[i]);
sheet.AddMergedRegion(new Region(0, 0, 0, ColumnsCount - 1));
/*标题*/
HSSFRow rowTitle1 = sheet.CreateRow(1);
rowTitle1.Height = 730;
for (int ii = 0; ii < ColumnsCount; ii++)
{
HSSFCell cellT = rowTitle1.CreateCell(ii);
cellT.CellStyle = fist2;
cellT.SetCellValue(dt[i].Columns[ii].ToString());
cellT.SetCellType(HSSFCell.CELL_TYPE_STRING);
}
}
Dictionary<string, itemSum> a = new Dictionary<string, itemSum>();
/*内容*/
for (int ii = 0; ii < dt[i].Rows.Count; ii++)
{
HSSFRow rowContent = sheet.CreateRow(ii + (title[i] == "sheet1" ? 0 : 2));
rowContent.Height = 620;
for (int jj = 0; jj < ColumnsCount; jj++)
{
HSSFCell cellT = rowContent.CreateCell(jj);
cellT.CellStyle = context;
if (dt[i].Columns.Contains("sysOutFlag"))
{
string sysOutFlag = dt[i].Rows[ii]["sysOutFlag"].ToString();
if (sysOutFlag == "1")
{
cellT.CellStyle = contextRed;
}
else if (sysOutFlag == "2")
{
cellT.CellStyle = contextGood;
}
}
setDataColumnValue(cellT, dt[i].Columns[jj].DataType.ToString(), "", dt[i].Rows[ii][jj].ToString());
if (Sum.Contains(dt[i].Columns[jj].ColumnName))
{
if (a.ContainsKey(dt[i].Columns[jj].ColumnName))
{
a[dt[i].Columns[jj].ColumnName].toalCnt = a[dt[i].Columns[jj].ColumnName].toalCnt + decimal.Parse(dt[i].Rows[ii][jj].ToString());
}
else
{
a.Add(dt[i].Columns[jj].ColumnName, new itemSum(jj, decimal.Parse(dt[i].Rows[ii][jj].ToString())));
}
}
}
if (title[i] == "sheet1")
{
sheet.AddMergedRegion(new Region(ii, 0, ii, 10));
}
}
/*附加列*/
if (dt[i].Rows.Count > 1)
{
HSSFRow rowSum = sheet.CreateRow(dt[i].Rows.Count + 2);
rowSum.Height = 620;
foreach (KeyValuePair<string, itemSum> keyValuePair in a)
{
HSSFCell cellSum = rowSum.CreateCell(keyValuePair.Value.index);
cellSum.CellStyle = context;
setDataColumnValue(cellSum, "System.Decimal", "", keyValuePair.Value.toalCnt.ToString());
}
}
/*兼职*/
if (dt[i].Columns.Contains("教师") && dt[i].Columns.Contains("职工代码") && dt[i].Columns.Contains("类型") && dt[i].Columns.Contains("标准"))
{
HSSFCellStyle bottom = saraly.CreateCellStyle();
bottom.WrapText = false;
bottom.Alignment = HSSFCellStyle.ALIGN_CENTER;
bottom.VerticalAlignment = HSSFCellStyle.VERTICAL_CENTER;
bottom.BorderTop = HSSFCellStyle.BORDER_THIN;
HSSFRow rowSum = sheet.CreateRow(dt[i].Rows.Count + 4);
sheet.AddMergedRegion(new Region(dt[i].Rows.Count + 4, 0, dt[i].Rows.Count + 4, ColumnsCount - 1));
rowSum.Height = 620;
HSSFCell buttomCell = rowSum.CreateCell(0);
buttomCell.CellStyle = bottom;
if (dt[i].Columns.Contains("课时费(元)"))
{
setDataColumnValue(buttomCell, "部门负责人: 人力资源审核: 制表人: ");
}
else {
setDataColumnValue(buttomCell, "制表人 教务负责人 ");
}
}
}
return saraly;
}
POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目, 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的...
Workbook:工作簿,即一个Excel文件,Excel文件分两种,分别是后缀名为xls的HSSFWorkBook(2003版本及以前),和后缀名为xlsx的XSSFWorkBook(2007版本及以后) Sheet:表格,一个Workbook中可以有多个表格 Row:...
在系统开发过程中导出Excel功能是经常遇到的需求,我们知道在asp.net webform中很简单,采用Response.Write一个文件...今天我就总结一下Asp.Net MVC5 使用导出Excel数据文件方法。一、项目准备下载:NPOI 2.1.1采用V...
在Excel中,单元格的宽度其实就是列的宽度,因为Excel假设这一列的...所以要设置单元格的宽度,我们就得从列的宽度下手,HSSFSheet有个方法叫SetColumnWidth,共有两个参数:一个是列的索引(从0开始),一个是宽度。
来源:...在Excel中,单元格的宽度其实就是列的宽度,因为Excel假设这一列的单元格的宽度肯定一致。所以要设置单
Java使用POI读写Excel文档1 背景2 目标效果3 创建Java程序3.1 版本说明3.2 创建项目4 测试 1 背景 Java程序猿在做业务系统时,经常会遇到自动生成Excel文档或者从Excel文档批量导入数据的需求,因此,掌握Java操作...
接下来介绍一下采用java操作excel的第三方框架:poi,对于poi,我想搞过批量导入、导出数据的博友都应该熟悉(当然啦,批量导入导出excel数据还有jxl,这里我就不介绍了!)。poi是apache jakarta项目的子项目,主要...
获取源码方式: 第一种:打开微信,搜一搜"别打我女儿的主意"打开微信小程序,找到菜单栏,点击源码,进去就可以获得链接 第二种:可以给本文... using NPOI.HSSF.UserModel;...using NPOI.SS.UserModel;...using ...
1. Excel列宽单位概述POI中Sheet列宽是通过字符个数来确定的,列宽单位为一个字符宽度的1/256 每列可以显示的最大字符数为255// 设置默认列宽,width为字符个数 sheet.setDefaultColumnWidth(int width)// 设置第...
在java中,有时候会需要导出数据,但有的对象中,名字很长,就需要设置列宽来调整显示, 1自动调整 public void allColumAutosize(XSSFSheet sheet) { //遍历所有单元格,把单元格设置为最大宽 for (int i = 0;...
sheet.autoSizeColumn((short)3); //调整第四列宽度 sheet.setDefaultColumnWidth(200); sheet.setColumnWidth(2, 15000); sheet.setColumnWidth(4, 20000); Message message = PhaseInterceptorC
使用Java代码(POI)读写 Excel,这篇博客给出了实现逻辑并有完整的代码实现。
SSFRow hssfRow = sheet.createRow(0);//创建表头hssfRow.setHeight((short)1000); //设置行高 sheet.setColumnWidth(列的下标...POI导出EXCEL设置跨行跨列(在所有数据行和列创建完成后再执行) CellRangeAddress r
对于一个程序员来说,文件操作是经常遇到的,尤其是对Excel文件的操作。...POI是apache的类库,主要是为java开发人员提供对Office文件(word、ppt、Excel)处理的支持。我这里主要给出几个例子来说明演示一下。
参考文章:...POI中Sheet列宽是通过字符个数来确定的,列宽单位为一个字符宽度的1/256 每列可以显示的最大字符数为255 // 设置默认列宽,width为字符个数 sheet.setDefaultColumnWidth...
最近做的一个ITFIN的项目中,导出的数据中有文本格式...然后往单元格中存放数据的时候要设置数据的格式为double类型,如果查看poi的源码HSSFCell.java会发现设置数据的方法如下,所以用setCellValue(double)方法即可。
Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0.1的jar包,其他版本不确保没有错误。 HSSFCellStyle.VERTICAL_CENTER...
下载 poi-4.0.1.jar 并导入项目中 写文件 public static void write(){ //创建工作簿 Workbook wb = new HSSFWorkbook(); //创建A、B两个 Sheet 页 Sheet sheetA = wb.createSheet("A"); Sheet sheet...
sheet 要对每一列设置 宽度 HSSFSheet.setColumnWidth(i,value.toString().length() * 512); 不过要取每一列中,value的最大值乘一个系数。 汉字是512,数字是256. 简单的话 可以设置...
要把表格导出后,对id信息进行修改后再导回,修改过程中输入的都是数值类型的尝试使用两种方法设置单元格的文本格式后,任然单元格会在被双击后变成科学技术法。 使用的两种设置方式,第一种如下: // 生成一个(带...
poi设置excel 设置字体格式,java设置excel设置字体格式 import org.apache.poi.hssf.usermodel.HSSFRichTextString; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel....
// 这里仅仅是数据内容的简单示例 Map<String, Object> map1 = new HashMap<>(); map1.put("name", "Machiel Jordan"); map1.put("...content&quo
这个问题是前天客户反应的,不用下载的好的模版套进内容再导入的话就报错,怎么也导入不进去,客户即想用从其他直接导出的数据导入我们的产品中用想能自己复制一些其他的内容到自己建立的excel表格中导入进去
using NPOI.HSSF.UserModel; ........ //获取第一个文件 FileStream fileOne = new FileStream(Server.MapPath(fileName), FileMode.Open, FileAccess.Read);... //生成Excel对象 HSSFWorkbo
使用Apache的POI相关API导出Excel设置单元格格式 栗子,一下各个代码之间的变量是通用的,要是在某个代码块中找不到某个变量,则可以向上找寻 准备工作 InputStream = template//文件输入流 XSSFWorkbook wb = new ...
1.Excel行高单位概述 ...DPI(或PPI),分辨率,pixel(dot)per inch,每英寸的像素(点)数,微软都将DPI和PPI混为一体,我们也就无须较真了。Windows系统默认是96dpi,Apple系统默认是72dpi px,pt和dpi的关系
https://blog.csdn.net/fz13768884254/article/details/82706936 https://blog.csdn.net/fz13768884254/article/details/82703959 https://blog.csdn.net/fz13768884254/article/details/82707117 项目中需要导入...
需求:将某个excel中的某一列列宽设置为35(该数值是Excel中显示的列宽值)。 poi中设置列宽的方法为:HSSFSheet.setColumnWidth(int columnIndex, int width);第一个参数好理解–列序号,关键是第二个参数宽度的值...
最近在做一个项目,需要在手机上操作excel。 好多问题出现,其实这些问题都源于同一个问题。...可以去比对一下 androidSDK和jdk就能发现了。 但是poi-ooxml-schemas这个包下面的某些类:比如org.openxmlformats.sc