NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF

首先要引用NPOI动态库和Microsoft.Office.Interop.excel.dll (Microsoft.Office.Interop.excel.dll 下载链接,下载以后解压文件,把Microsoft.Office.Interop.excel.dll拷贝到项目下,添加引用。NPOI的添加则项目选中右键使用管理NuGet管理程序包,nuget添加NPOI即可)

上述工作完成,下面直接代码

using System;
using System.Collections.Generic;
using System.Text;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;
using NPOI.XSSF.UserModel;
using System.IO;
using System.Drawing;
using System.Drawing.Imaging;
using Excel = Microsoft.Office.Interop.Excel;
//using Spire.Xls;

namespace ConsoleNPOI
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("开始操作EXCEL。。。。");
Console.WriteLine("正在操作请稍等。。。。");
//新建xls工作簿
HSSFWorkbook workbook2003 = new HSSFWorkbook();
//创建Sheet页
ISheet sheet = workbook2003.CreateSheet("信息核查表");

#region 宿迁不动产登记中心
IRow IRow0 = sheet.CreateRow(0);
for (int h = 0; h < 10; h++)
{
ICell Icell = IRow0.CreateCell(h);
Icell.SetCellValue("宿迁不动产登记中心");

ICellStyle style = workbook2003.CreateCellStyle();
//设置单元格的样式:水平对齐居中
style.Alignment = HorizontalAlignment.Center;
//新建一个字体样式对象
IFont font = workbook2003.CreateFont();
font.FontName = "宋体";
font.FontHeightInPoints = 18;
//设置字体加粗样式
font.Boldweight = (short)FontBoldWeight.Bold;
//使用SetFont方法将字体样式添加到单元格样式中
style.SetFont(font);
//将新的样式赋给单元格
Icell.CellStyle = style;
}
//合并单元格
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
#endregion

#region 人证识别信息表
IRow IRow1 = sheet.CreateRow(1);
for (int h = 0; h < 10; h++)
{
ICell Icell1 = IRow1.CreateCell(h);
Icell1.SetCellValue("人证识别信息表");

ICellStyle style1 = workbook2003.CreateCellStyle();
//设置单元格的样式:水平对齐居中
style1.Alignment = HorizontalAlignment.Center;
//新建一个字体样式对象
IFont font1 = workbook2003.CreateFont();
font1.FontName = "宋体";
font1.FontHeightInPoints = 16;
//设置字体加粗样式
font1.Boldweight = (short)FontBoldWeight.Normal;
//使用SetFont方法将字体样式添加到单元格样式中
style1.SetFont(font1);
//将新的样式赋给单元格
Icell1.CellStyle = style1;
}
//合并单元格
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(1, 1, 0, 9));
#endregion

#region 身份证信息
IRow IRow2 = sheet.CreateRow(2);
for (int h = 0; h < 10; h++)
{
ICell Icell2 = IRow2.CreateCell(h);
Icell2.SetCellValue("身份证信息");
ICellStyle style2 = workbook2003.CreateCellStyle();
if (h == 0)
{
style2.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style2.BorderRight = BorderStyle.Thin;
}
style2.BorderTop = BorderStyle.Thin;
style2.Alignment = HorizontalAlignment.Left;
IFont font2 = workbook2003.CreateFont();
font2.FontName = "宋体";
font2.FontHeightInPoints = 12;
font2.Boldweight = (short)FontBoldWeight.Normal;
style2.SetFont(font2);
Icell2.CellStyle = style2;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(2, 2, 0, 9));
#endregion

#region 身份证正反面照片
IRow IRow3 = sheet.CreateRow(3);
IRow3.Height = 200 * 20;
for (int h = 0; h < 10; h++)
{
ICellStyle style3 = workbook2003.CreateCellStyle();
ICell Icell3 = IRow3.CreateCell(h);
if (h == 0)
{
//Icell3.SetCellValue("身份证正面照");
#region 添加身份证正面照

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_positive_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(300, 50, 600, 200, 0, 3, 4, 3);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
#endregion
style3.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
#region 添加身份证反面照

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_negative_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(300, 50, 600, 200, 5, 3, 9, 3);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
//}

//Drawing drawing = sheet.createDrawingPatriarch();
////添加一个图片
////创建锚点
//ClientAnchor anchor = helper.createClientAnchor();
////设置图片的左上角
////接下来调用Picture#resize()设置图片相对于设置的左上角的位置
//anchor.setCol1(3);//从0开始 第3列
//anchor.setRow1(2);//从0开始 第2行
// //根据锚点和图片下标创建并绘制一张图片
//Picture pict = drawing.createPicture(anchor, pictureIdx);
////相对于图片的左上角自动适应大小
////===========>>>>>>>>>[注意]<<<<<<=================
////picture.resize() 仅仅只是针对这两种类型的图片 JPEG 和 PNG.
////其他格式暂时不支持
//pict.resize();

#endregion
//Icell3.SetCellValue("身份证反面照");
}
else if (h == 9)
{
style3.BorderRight = BorderStyle.Thin;
}
style3.BorderTop = BorderStyle.Thin;
style3.Alignment = HorizontalAlignment.Left;
IFont font3 = workbook2003.CreateFont();
font3.FontName = "宋体";
font3.FontHeightInPoints = 12;
font3.Boldweight = (short)FontBoldWeight.Normal;
style3.SetFont(font3);
Icell3.CellStyle = style3;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(3, 3, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(3, 3, 5, 9));
#endregion

#region 现场采集照片
IRow IRow4 = sheet.CreateRow(4);

for (int h = 0; h < 10; h++)
{
ICell Icell4 = IRow4.CreateCell(h);
Icell4.SetCellValue("现场采集照片");
ICellStyle style4 = workbook2003.CreateCellStyle();
if (h == 0)
{
style4.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style4.BorderRight = BorderStyle.Thin;
}
style4.BorderTop = BorderStyle.Thin;
style4.Alignment = HorizontalAlignment.Left;
IFont font4 = workbook2003.CreateFont();
font4.FontName = "宋体";
font4.FontHeightInPoints = 12;
font4.Boldweight = (short)FontBoldWeight.Normal;
style4.SetFont(font4);
Icell4.CellStyle = style4;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(4, 4, 0, 9));

#endregion

#region 现场采集照片-照片
IRow IRow5 = sheet.CreateRow(5);
IRow5.Height = 200 * 20;
for (int h = 0; h < 10; h++)
{
ICell Icell5 = IRow5.CreateCell(h);
//Icell5.SetCellValue("现场采集照片-照片");
#region 添加图片

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_camera_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(10, 50, 100, 200, 1, 5, 9, 5);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
//}

//Drawing drawing = sheet.createDrawingPatriarch();
////添加一个图片
////创建锚点
//ClientAnchor anchor = helper.createClientAnchor();
////设置图片的左上角
////接下来调用Picture#resize()设置图片相对于设置的左上角的位置
//anchor.setCol1(3);//从0开始 第3列
//anchor.setRow1(2);//从0开始 第2行
// //根据锚点和图片下标创建并绘制一张图片
//Picture pict = drawing.createPicture(anchor, pictureIdx);
////相对于图片的左上角自动适应大小
////===========>>>>>>>>>[注意]<<<<<<=================
////picture.resize() 仅仅只是针对这两种类型的图片 JPEG 和 PNG.
////其他格式暂时不支持
//pict.resize();

#endregion
ICellStyle style5 = workbook2003.CreateCellStyle();
if (h == 0)
{
style5.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style5.BorderRight = BorderStyle.Thin;
}
style5.BorderTop = BorderStyle.Thin;
style5.Alignment = HorizontalAlignment.Center;
Icell5.CellStyle = style5;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(5, 5, 0, 9));

#endregion

#region 比对结果
//IRow IRow6 = sheet.CreateRow(6);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell = IRow6.CreateCell(h);
// if (h == 0)
// {
// Icell.SetCellValue("比对结果");
// }
// else
// {
// Icell.SetCellValue("92.68");
// }

// ICellStyle style6 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style6.Alignment = HorizontalAlignment.Center;
// Icell.CellStyle = style6;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow6 = sheet.CreateRow(6);
for (int h = 0; h < 10; h++)
{
ICellStyle style6 = workbook2003.CreateCellStyle();
ICell Icell6 = IRow6.CreateCell(h);
if (h == 0)
{
Icell6.SetCellValue("比对结果");
style6.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell6.SetCellValue("92.68");
}
else if (h == 9)
{
style6.BorderRight = BorderStyle.Thin;
}
style6.BorderTop = BorderStyle.Thin;
style6.Alignment = HorizontalAlignment.Left;
IFont font6 = workbook2003.CreateFont();
font6.FontName = "宋体";
font6.FontHeightInPoints = 12;
font6.Boldweight = (short)FontBoldWeight.Normal;
style6.SetFont(font6);
Icell6.CellStyle = style6;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(6, 6, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(6, 6, 5, 9));

#endregion

#region 比对日期
//IRow IRow7 = sheet.CreateRow(7);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell7 = IRow7.CreateCell(h);
// if (h == 0)
// {
// Icell7.SetCellValue("比对日期");
// }
// else
// {
// Icell7.SetCellValue("2018年9月29日");
// }

// ICellStyle style7 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style7.Alignment = HorizontalAlignment.Center;
// Icell7.CellStyle = style7;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow7 = sheet.CreateRow(7);
for (int h = 0; h < 10; h++)
{
ICellStyle style7 = workbook2003.CreateCellStyle();
ICell Icell7 = IRow7.CreateCell(h);
if (h == 0)
{
Icell7.SetCellValue("比对日期");
style7.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell7.SetCellValue("2018年9月29日");
}
else if (h == 9)
{
style7.BorderRight = BorderStyle.Thin;
}
style7.BorderTop = BorderStyle.Thin;
style7.Alignment = HorizontalAlignment.Left;
IFont font7 = workbook2003.CreateFont();
font7.FontName = "宋体";
font7.FontHeightInPoints = 12;
font7.Boldweight = (short)FontBoldWeight.Normal;
style7.SetFont(font7);
Icell7.CellStyle = style7;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(7, 7, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(7, 7, 5, 9));
#endregion

#region 确认签字
//IRow IRow8 = sheet.CreateRow(8);
//ICell Icell8 = IRow8.CreateCell(0);
//Icell8.SetCellValue("确认签字");
//ICellStyle style8 = workbook2003.CreateCellStyle();
////设置单元格的样式:水平对齐居中
//style8.Alignment = HorizontalAlignment.Center;
////新建一个字体样式对象
//IFont font8 = workbook2003.CreateFont();
//font8.FontName = "宋体";
//font8.FontHeightInPoints = 12;
////设置字体加粗样式
//font8.Boldweight = (short)FontBoldWeight.Normal;
////使用SetFont方法将字体样式添加到单元格样式中
//style8.SetFont(font8);
////将新的样式赋给单元格
//Icell8.CellStyle = style8;
IRow IRow8 = sheet.CreateRow(8);
for (int h = 0; h < 10; h++)
{
ICell Icell8 = IRow8.CreateCell(h);
Icell8.SetCellValue("确认签字");
ICellStyle style8 = workbook2003.CreateCellStyle();
style8.Alignment = HorizontalAlignment.Left;
if (h == 0)
{
style8.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style8.BorderRight = BorderStyle.Thin;
}
style8.BorderTop = BorderStyle.Thin;
IFont font8 = workbook2003.CreateFont();
font8.FontName = "宋体";
font8.FontHeightInPoints = 12;
font8.Boldweight = (short)FontBoldWeight.Normal;
style8.SetFont(font8);
Icell8.CellStyle = style8;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(8, 8, 0, 9));
#endregion

#region 确认签字--声明内容
//IRow IRow9 = sheet.CreateRow(9);
//ICell Icell9 = IRow9.CreateCell(0);
//string confirmname = "以上照片为本人在宿迁市不动产登记中心办理业务时,经本人同意现场所设。\r\n 本人知晓:若冒充他人伪造证件,将会承担刑事责任和赔偿责任";
//Icell9.SetCellValue(confirmname);
//ICellStyle style9 = workbook2003.CreateCellStyle();
////设置单元格的样式:水平对齐居中
//style9.Alignment = HorizontalAlignment.Left;
////新建一个字体样式对象
//IFont font9 = workbook2003.CreateFont();
//font9.FontName = "宋体";
//font9.FontHeightInPoints = 12;
////设置字体加粗样式
//font9.Boldweight = (short)FontBoldWeight.Normal;
////使用SetFont方法将字体样式添加到单元格样式中
//style9.SetFont(font9);
////将新的样式赋给单元格
//Icell9.CellStyle = style9;

IRow IRow9 = sheet.CreateRow(9);
IRow9.Height = 15 * 200;
for (int h = 0; h < 10; h++)
{
ICell Icell9 = IRow9.CreateCell(h);
string confirmname = "以上照片为本人在宿迁市不动产登记中心办理业务时,经本人同意现场所设。\r\n 本人知晓:若冒充他人伪造证件,将会承担刑事责任和赔偿责任";
Icell9.SetCellValue(confirmname);
ICellStyle style9 = workbook2003.CreateCellStyle();

style9.Alignment = HorizontalAlignment.Left;
style9.VerticalAlignment = VerticalAlignment.Center;
style9.WrapText = true;
if (h == 0)
{
style9.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style9.BorderRight = BorderStyle.Thin;
}
style9.BorderTop = BorderStyle.Thin;
IFont font9 = workbook2003.CreateFont();
font9.FontName = "宋体";
font9.FontHeightInPoints = 12;
font9.Boldweight = (short)FontBoldWeight.Normal;
style9.SetFont(font9);
Icell9.CellStyle = style9;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(9, 9, 0, 9));
#endregion

#region 确认签字--签字
//IRow IRow10 = sheet.CreateRow(10);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell10 = IRow10.CreateCell(h);
// if (h == 0)
// {
// Icell10.SetCellValue("当事人签名:");
// }
// else
// {
// Icell10.SetCellValue("张三");
// }

// ICellStyle style10 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style10.Alignment = HorizontalAlignment.Right;
// Icell10.CellStyle = style10;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow10 = sheet.CreateRow(10);
for (int h = 0; h < 10; h++)
{
ICellStyle style10 = workbook2003.CreateCellStyle();
ICell Icell10 = IRow10.CreateCell(h);
if (h == 0)
{
Icell10.SetCellValue("当事人签名:");
style10.Alignment = HorizontalAlignment.Right;
style10.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell10.SetCellValue("张三");
style10.Alignment = HorizontalAlignment.Left;
}
else if (h == 9)
{
style10.BorderRight = BorderStyle.Thin;
}

style10.BorderBottom = BorderStyle.Thin;

IFont font10 = workbook2003.CreateFont();
font10.FontName = "宋体";
font10.FontHeightInPoints = 12;
font10.Boldweight = (short)FontBoldWeight.Normal;
style10.SetFont(font10);
Icell10.CellStyle = style10;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(10, 10, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(10, 10, 5, 9));

#endregion

//workbook2003.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式

FileStream file2003 = new FileStream(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.xls", FileMode.Create);
workbook2003.Write(file2003);
file2003.Close(); //关闭文件流
workbook2003.Close();

bool isOK = CovertExcelToPDF(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.xls", @"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.pdf");

//XSSFWorkbook workbook2007 = new XSSFWorkbook(); //新建xlsx工作簿
//workbook2007.CreateSheet("Sheet1");
//workbook2007.CreateSheet("Sheet2");
//workbook2007.CreateSheet("Sheet3");
////workbook2007.
////workbook2007.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式
//FileStream file2007 = new FileStream(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\Excel2007.pdf", FileMode.Create);
//workbook2007.Write(file2007);
//file2007.Close();
//workbook2007.Close();

//Workbook workbook = new Workbook();
//workbook.LoadFromFile(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\Excel2007.xlsx");
//workbook.SaveToFile("输出.pdf", FileFormat.PDF);

//obook.SaveCopyAs(@"D:\Diagonal.xls");//保存到指定文件

//obook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式

Console.WriteLine("操作EXCEL结束。。。");
Console.Read();
}

/// <summary>
/// 创建Excel文档
/// </summary>
public void CreateExcel()
{
//新建xls工作簿
HSSFWorkbook workbook2003 = new HSSFWorkbook();
//创建Sheet页
ISheet sheet = workbook2003.CreateSheet("信息核查表");

#region 宿迁不动产登记中心
IRow IRow0 = sheet.CreateRow(0);
for (int h = 0; h < 10; h++)
{
ICell Icell = IRow0.CreateCell(h);
Icell.SetCellValue("宿迁不动产登记中心");

ICellStyle style = workbook2003.CreateCellStyle();
//设置单元格的样式:水平对齐居中
style.Alignment = HorizontalAlignment.Center;
//新建一个字体样式对象
IFont font = workbook2003.CreateFont();
font.FontName = "宋体";
font.FontHeightInPoints = 18;
//设置字体加粗样式
font.Boldweight = (short)FontBoldWeight.Bold;
//使用SetFont方法将字体样式添加到单元格样式中
style.SetFont(font);
//将新的样式赋给单元格
Icell.CellStyle = style;
}
//合并单元格
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
#endregion

#region 人证识别信息表
IRow IRow1 = sheet.CreateRow(1);
for (int h = 0; h < 10; h++)
{
ICell Icell1 = IRow1.CreateCell(h);
Icell1.SetCellValue("人证识别信息表");

ICellStyle style1 = workbook2003.CreateCellStyle();
//设置单元格的样式:水平对齐居中
style1.Alignment = HorizontalAlignment.Center;
//新建一个字体样式对象
IFont font1 = workbook2003.CreateFont();
font1.FontName = "宋体";
font1.FontHeightInPoints = 16;
//设置字体加粗样式
font1.Boldweight = (short)FontBoldWeight.Normal;
//使用SetFont方法将字体样式添加到单元格样式中
style1.SetFont(font1);
//将新的样式赋给单元格
Icell1.CellStyle = style1;
}
//合并单元格
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(1, 1, 0, 9));
#endregion

#region 身份证信息
IRow IRow2 = sheet.CreateRow(2);
for (int h = 0; h < 10; h++)
{
ICell Icell2 = IRow2.CreateCell(h);
Icell2.SetCellValue("身份证信息");
ICellStyle style2 = workbook2003.CreateCellStyle();
if (h == 0)
{
style2.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style2.BorderRight = BorderStyle.Thin;
}
style2.BorderTop = BorderStyle.Thin;
style2.Alignment = HorizontalAlignment.Left;
IFont font2 = workbook2003.CreateFont();
font2.FontName = "宋体";
font2.FontHeightInPoints = 12;
font2.Boldweight = (short)FontBoldWeight.Normal;
style2.SetFont(font2);
Icell2.CellStyle = style2;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(2, 2, 0, 9));
#endregion

#region 身份证正反面照片
IRow IRow3 = sheet.CreateRow(3);
IRow3.Height = 200 * 20;
for (int h = 0; h < 10; h++)
{
ICellStyle style3 = workbook2003.CreateCellStyle();
ICell Icell3 = IRow3.CreateCell(h);
if (h == 0)
{
//Icell3.SetCellValue("身份证正面照");
#region 添加身份证正面照

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_positive_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(300, 50, 600, 200, 0, 3, 4, 3);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
#endregion
style3.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
#region 添加身份证反面照

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_negative_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(300, 50, 600, 200, 5, 3, 9, 3);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
//}

//Drawing drawing = sheet.createDrawingPatriarch();
////添加一个图片
////创建锚点
//ClientAnchor anchor = helper.createClientAnchor();
////设置图片的左上角
////接下来调用Picture#resize()设置图片相对于设置的左上角的位置
//anchor.setCol1(3);//从0开始 第3列
//anchor.setRow1(2);//从0开始 第2行
// //根据锚点和图片下标创建并绘制一张图片
//Picture pict = drawing.createPicture(anchor, pictureIdx);
////相对于图片的左上角自动适应大小
////===========>>>>>>>>>[注意]<<<<<<=================
////picture.resize() 仅仅只是针对这两种类型的图片 JPEG 和 PNG.
////其他格式暂时不支持
//pict.resize();

#endregion
//Icell3.SetCellValue("身份证反面照");
}
else if (h == 9)
{
style3.BorderRight = BorderStyle.Thin;
}
style3.BorderTop = BorderStyle.Thin;
style3.Alignment = HorizontalAlignment.Left;
IFont font3 = workbook2003.CreateFont();
font3.FontName = "宋体";
font3.FontHeightInPoints = 12;
font3.Boldweight = (short)FontBoldWeight.Normal;
style3.SetFont(font3);
Icell3.CellStyle = style3;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(3, 3, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(3, 3, 5, 9));
#endregion

#region 现场采集照片
IRow IRow4 = sheet.CreateRow(4);

for (int h = 0; h < 10; h++)
{
ICell Icell4 = IRow4.CreateCell(h);
Icell4.SetCellValue("现场采集照片");
ICellStyle style4 = workbook2003.CreateCellStyle();
if (h == 0)
{
style4.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style4.BorderRight = BorderStyle.Thin;
}
style4.BorderTop = BorderStyle.Thin;
style4.Alignment = HorizontalAlignment.Left;
IFont font4 = workbook2003.CreateFont();
font4.FontName = "宋体";
font4.FontHeightInPoints = 12;
font4.Boldweight = (short)FontBoldWeight.Normal;
style4.SetFont(font4);
Icell4.CellStyle = style4;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(4, 4, 0, 9));

#endregion

#region 现场采集照片-照片
IRow IRow5 = sheet.CreateRow(5);
IRow5.Height = 200 * 20;
for (int h = 0; h < 10; h++)
{
ICell Icell5 = IRow5.CreateCell(h);
//Icell5.SetCellValue("现场采集照片-照片");
#region 添加图片

//插入图片
//byte[] bytes = System.IO.File.ReadAllBytes(FileName);
//if (!string.IsNullOrEmpty(FileName))
//{
MemoryStream memoryStream = new MemoryStream();
Bitmap bitmap = new Bitmap(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\idcard_camera_photo.png");
bitmap.Save(memoryStream, ImageFormat.Png);
byte[] imagebyte = memoryStream.GetBuffer();
int pictureIdx = workbook2003.AddPicture(imagebyte, PictureType.PNG);
HSSFPatriarch patriarch = (HSSFPatriarch)sheet.CreateDrawingPatriarch();
HSSFClientAnchor anchor = new HSSFClientAnchor(10, 50, 100, 200, 1, 5, 9, 5);
//##处理照片位置,【图片左上角为(col, row)第row+1行col+1列,右下角为( col +1, row +1)第 col +1+1行row +1+1列,宽为100,高为50

HSSFPicture pict = (HSSFPicture)patriarch.CreatePicture(anchor, pictureIdx);

//pict.Resize();//这句话一定不要,这是用图片原始大小来显示
//}

//Drawing drawing = sheet.createDrawingPatriarch();
////添加一个图片
////创建锚点
//ClientAnchor anchor = helper.createClientAnchor();
////设置图片的左上角
////接下来调用Picture#resize()设置图片相对于设置的左上角的位置
//anchor.setCol1(3);//从0开始 第3列
//anchor.setRow1(2);//从0开始 第2行
// //根据锚点和图片下标创建并绘制一张图片
//Picture pict = drawing.createPicture(anchor, pictureIdx);
////相对于图片的左上角自动适应大小
////===========>>>>>>>>>[注意]<<<<<<=================
////picture.resize() 仅仅只是针对这两种类型的图片 JPEG 和 PNG.
////其他格式暂时不支持
//pict.resize();

#endregion
ICellStyle style5 = workbook2003.CreateCellStyle();
if (h == 0)
{
style5.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style5.BorderRight = BorderStyle.Thin;
}
style5.BorderTop = BorderStyle.Thin;
style5.Alignment = HorizontalAlignment.Center;
Icell5.CellStyle = style5;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(5, 5, 0, 9));

#endregion

#region 比对结果
//IRow IRow6 = sheet.CreateRow(6);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell = IRow6.CreateCell(h);
// if (h == 0)
// {
// Icell.SetCellValue("比对结果");
// }
// else
// {
// Icell.SetCellValue("92.68");
// }

// ICellStyle style6 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style6.Alignment = HorizontalAlignment.Center;
// Icell.CellStyle = style6;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow6 = sheet.CreateRow(6);
for (int h = 0; h < 10; h++)
{
ICellStyle style6 = workbook2003.CreateCellStyle();
ICell Icell6 = IRow6.CreateCell(h);
if (h == 0)
{
Icell6.SetCellValue("比对结果");
style6.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell6.SetCellValue("92.68");
}
else if (h == 9)
{
style6.BorderRight = BorderStyle.Thin;
}
style6.BorderTop = BorderStyle.Thin;
style6.Alignment = HorizontalAlignment.Left;
IFont font6 = workbook2003.CreateFont();
font6.FontName = "宋体";
font6.FontHeightInPoints = 12;
font6.Boldweight = (short)FontBoldWeight.Normal;
style6.SetFont(font6);
Icell6.CellStyle = style6;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(6, 6, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(6, 6, 5, 9));

#endregion

#region 比对日期
//IRow IRow7 = sheet.CreateRow(7);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell7 = IRow7.CreateCell(h);
// if (h == 0)
// {
// Icell7.SetCellValue("比对日期");
// }
// else
// {
// Icell7.SetCellValue("2018年9月29日");
// }

// ICellStyle style7 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style7.Alignment = HorizontalAlignment.Center;
// Icell7.CellStyle = style7;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow7 = sheet.CreateRow(7);
for (int h = 0; h < 10; h++)
{
ICellStyle style7 = workbook2003.CreateCellStyle();
ICell Icell7 = IRow7.CreateCell(h);
if (h == 0)
{
Icell7.SetCellValue("比对日期");
style7.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell7.SetCellValue("2018年9月29日");
}
else if (h == 9)
{
style7.BorderRight = BorderStyle.Thin;
}
style7.BorderTop = BorderStyle.Thin;
style7.Alignment = HorizontalAlignment.Left;
IFont font7 = workbook2003.CreateFont();
font7.FontName = "宋体";
font7.FontHeightInPoints = 12;
font7.Boldweight = (short)FontBoldWeight.Normal;
style7.SetFont(font7);
Icell7.CellStyle = style7;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(7, 7, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(7, 7, 5, 9));
#endregion

#region 确认签字
//IRow IRow8 = sheet.CreateRow(8);
//ICell Icell8 = IRow8.CreateCell(0);
//Icell8.SetCellValue("确认签字");
//ICellStyle style8 = workbook2003.CreateCellStyle();
////设置单元格的样式:水平对齐居中
//style8.Alignment = HorizontalAlignment.Center;
////新建一个字体样式对象
//IFont font8 = workbook2003.CreateFont();
//font8.FontName = "宋体";
//font8.FontHeightInPoints = 12;
////设置字体加粗样式
//font8.Boldweight = (short)FontBoldWeight.Normal;
////使用SetFont方法将字体样式添加到单元格样式中
//style8.SetFont(font8);
////将新的样式赋给单元格
//Icell8.CellStyle = style8;
IRow IRow8 = sheet.CreateRow(8);
for (int h = 0; h < 10; h++)
{
ICell Icell8 = IRow8.CreateCell(h);
Icell8.SetCellValue("确认签字");
ICellStyle style8 = workbook2003.CreateCellStyle();
style8.Alignment = HorizontalAlignment.Left;
if (h == 0)
{
style8.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style8.BorderRight = BorderStyle.Thin;
}
style8.BorderTop = BorderStyle.Thin;
IFont font8 = workbook2003.CreateFont();
font8.FontName = "宋体";
font8.FontHeightInPoints = 12;
font8.Boldweight = (short)FontBoldWeight.Normal;
style8.SetFont(font8);
Icell8.CellStyle = style8;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(8, 8, 0, 9));
#endregion

#region 确认签字--声明内容
//IRow IRow9 = sheet.CreateRow(9);
//ICell Icell9 = IRow9.CreateCell(0);
//string confirmname = "以上照片为本人在宿迁市不动产登记中心办理业务时,经本人同意现场所设。\r\n 本人知晓:若冒充他人伪造证件,将会承担刑事责任和赔偿责任";
//Icell9.SetCellValue(confirmname);
//ICellStyle style9 = workbook2003.CreateCellStyle();
////设置单元格的样式:水平对齐居中
//style9.Alignment = HorizontalAlignment.Left;
////新建一个字体样式对象
//IFont font9 = workbook2003.CreateFont();
//font9.FontName = "宋体";
//font9.FontHeightInPoints = 12;
////设置字体加粗样式
//font9.Boldweight = (short)FontBoldWeight.Normal;
////使用SetFont方法将字体样式添加到单元格样式中
//style9.SetFont(font9);
////将新的样式赋给单元格
//Icell9.CellStyle = style9;

IRow IRow9 = sheet.CreateRow(9);
IRow9.Height = 15 * 200;
for (int h = 0; h < 10; h++)
{
ICell Icell9 = IRow9.CreateCell(h);
string confirmname = "以上照片为本人在宿迁市不动产登记中心办理业务时,经本人同意现场所设。\r\n 本人知晓:若冒充他人伪造证件,将会承担刑事责任和赔偿责任";
Icell9.SetCellValue(confirmname);
ICellStyle style9 = workbook2003.CreateCellStyle();

style9.Alignment = HorizontalAlignment.Left;
style9.VerticalAlignment = VerticalAlignment.Center;
style9.WrapText = true;
if (h == 0)
{
style9.BorderLeft = BorderStyle.Thin;
}
else if (h == 9)
{
style9.BorderRight = BorderStyle.Thin;
}
style9.BorderTop = BorderStyle.Thin;
IFont font9 = workbook2003.CreateFont();
font9.FontName = "宋体";
font9.FontHeightInPoints = 12;
font9.Boldweight = (short)FontBoldWeight.Normal;
style9.SetFont(font9);
Icell9.CellStyle = style9;
}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(9, 9, 0, 9));
#endregion

#region 确认签字--签字
//IRow IRow10 = sheet.CreateRow(10);
//for (int h = 0; h < 2; h++)
//{
// ICell Icell10 = IRow10.CreateCell(h);
// if (h == 0)
// {
// Icell10.SetCellValue("当事人签名:");
// }
// else
// {
// Icell10.SetCellValue("张三");
// }

// ICellStyle style10 = workbook2003.CreateCellStyle();
// //设置单元格的样式:水平对齐居中
// style10.Alignment = HorizontalAlignment.Right;
// Icell10.CellStyle = style10;
// //合并单元格
// // sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(0, 0, 0, 9));
//}
IRow IRow10 = sheet.CreateRow(10);
for (int h = 0; h < 10; h++)
{
ICellStyle style10 = workbook2003.CreateCellStyle();
ICell Icell10 = IRow10.CreateCell(h);
if (h == 0)
{
Icell10.SetCellValue("当事人签名:");
style10.Alignment = HorizontalAlignment.Right;
style10.BorderLeft = BorderStyle.Thin;
}
else if (h == 5)
{
Icell10.SetCellValue("张三");
style10.Alignment = HorizontalAlignment.Left;
}
else if (h == 9)
{
style10.BorderRight = BorderStyle.Thin;
}

style10.BorderBottom = BorderStyle.Thin;

IFont font10 = workbook2003.CreateFont();
font10.FontName = "宋体";
font10.FontHeightInPoints = 12;
font10.Boldweight = (short)FontBoldWeight.Normal;
style10.SetFont(font10);
Icell10.CellStyle = style10;

}
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(10, 10, 0, 4));
sheet.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(10, 10, 5, 9));

#endregion

//workbook2003.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式

FileStream file2003 = new FileStream(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.xls", FileMode.Create);
workbook2003.Write(file2003);
file2003.Close(); //关闭文件流
workbook2003.Close();

bool isOK = CovertExcelToPDF(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.xls", @"D:\Person\Solution\Solution\MySln\ConsoleNPOI\信息核查表.pdf");

//XSSFWorkbook workbook2007 = new XSSFWorkbook(); //新建xlsx工作簿
//workbook2007.CreateSheet("Sheet1");
//workbook2007.CreateSheet("Sheet2");
//workbook2007.CreateSheet("Sheet3");
////workbook2007.
////workbook2007.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式
//FileStream file2007 = new FileStream(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\Excel2007.pdf", FileMode.Create);
//workbook2007.Write(file2007);
//file2007.Close();
//workbook2007.Close();

//Workbook workbook = new Workbook();
//workbook.LoadFromFile(@"D:\Person\Solution\Solution\MySln\ConsoleNPOI\Excel2007.xlsx");
//workbook.SaveToFile("输出.pdf", FileFormat.PDF);

//obook.SaveCopyAs(@"D:\Diagonal.xls");//保存到指定文件

//obook.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, fileName, Excel.XlFixedFormatQuality.xlQualityStandard, true, true, 1, 3, false, Type.Missing); //导出成PDF格式
}

/// <summary>
/// Excel保存PDF
/// </summary>
/// <param name="excelPath"> EXCEL全路径 </param>
/// <param name="pdfPath"> PDF保存路径 </param>
/// <returns></returns>
public static bool CovertExcelToPDF(string excelPath, string pdfPath)
{
object missing = Type.Missing;
////创建excel应用程序实例
Excel.ApplicationClass application = null;
////创建工作薄实例
Excel.Workbook workBook = null;
try
{
application = new Excel.ApplicationClass();
////打开工作簿
workBook = application.Workbooks.Open(excelPath, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing);
////打开sheet
Excel.Worksheet ws = (Excel.Worksheet)workBook.Worksheets.Item[1];
////设置打印放放为水平
ws.PageSetup.Orientation = Excel.XlPageOrientation.xlPortrait;
////设置打印时excel内容在一个页面上显示。Zoom必须设置为false
ws.PageSetup.Zoom = false;
ws.PageSetup.FitToPagesTall = 1;
ws.PageSetup.FitToPagesWide = 1;

////将工作簿发布为PDF或XPS格式
ws.ExportAsFixedFormat(Excel.XlFixedFormatType.xlTypePDF, pdfPath, Excel.XlFixedFormatQuality.xlQualityStandard, true, false, missing, missing, missing, missing); ////忽略打印区域
return true;
}
catch
{
throw;
}
finally
{
////工作簿关闭
if (workBook != null)
{
workBook.Close(true, missing, missing);
workBook = null;
}
//// excel应用程序退出关闭
if (application != null)
{
application.Quit();
application = null;
}
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
GC.WaitForPendingFinalizers();
// 安全回收进程
//System.GC.GetGeneration(application);
}
}

/// <summary>
/// WPS实现Word到PDF的转换
/// </summary>
/// <param name="sourcePath"></param>
/// <param name="targetPath"></param>
/// <returns></returns>
public bool WordToPdfWithWPS(string sourcePath, string targetPath)
{
//WPS.ApplicationClass app = new WPS.ApplicationClass();
//WPS.Document doc = null;
//try
//{
// doc = app.Documents.Open(sourcePath, true, true, false, null, null, false, "", null, 100, 0, true, true, 0, true);
// doc.ExportPdf(targetPath, "", "");
//}
//catch (Exception ex)
//{
// Console.WriteLine(ex.Message);
// return false;
//}
//finally
//{
// doc.Close();
//}
return true;
}

/// <summary>
/// 基于Office实现将Word转换成PDF
/// </summary>
/// <param name="sourcePath"></param>
/// <param name="targetPath"></param>
/// <returns></returns>
public bool WordToPDF(string sourcePath, string targetPath)
{
bool result = false;
//Microsoft.Office.Interop.Word.Application application = new Microsoft.Office.Interop.Word.Application();
//Document document = null;
//try
//{
// application.Visible = false;
// document = application.Documents.Open(sourcePath);
// document.ExportAsFixedFormat(targetPath, WdExportFormat.wdExportFormatPDF);
// result = true;
//}
//catch (Exception e)
//{
// Console.WriteLine(e.Message);
// result = false;
//}
//finally
//{
// document.Close();
//}
return result;
}

}
}

原文地址:https://www.cnblogs.com/1175429393wljblog/p/9803035.html

时间: 2024-10-14 06:19:42

NPOI写Excel,Microsoft.Office.Interop.excel.dll 转换Excel为PDF的相关文章

添加 引用using Excel=Microsoft.Office.Interop.Excel所遇到的问题

我引用microsoft office 15.0 object library,并没有找到excel组件.但编译器中并没有报错. 很奇怪这个问题.. 添加 引用using Excel=Microsoft.Office.Interop.Excel所遇到的问题,布布扣,bubuko.com

使用 Microsoft.Office.Interop.Excel.dll 更新Excel的ColumnName

Microsoft.Office.Interop.Excel.dll 是MS提供的用于操作Excel的类库,这个类库非常强大,笔者最近遇到一个项目,需要修改Excel的列名,并且做成SSIS Package,在ssms中生存job自动执行.之前考虑使用NPOI,但是在使用NPOI时,Script task不能将NPOI自动导入到.net framework,需要执行一个gacutil的脚本,有点麻烦,既然Microsoft.Office.Interop.Excel.dll是微软的东西,肯定是已经

c#操作excel方式三:使用Microsoft.Office.Interop.Excel.dll读取Excel文件

1.引用Microsoft.Office.Interop.Excel.dll 2.引用命名空间.使用别名 [csharp] view plaincopy using System.Reflection; using Excel = Microsoft.Office.Interop.Excel; 3.写入excel 写入函数 [csharp] view plaincopy public void ToExcel(string strTitle) { int nMax = 9; int nMin =

Microsoft.Office.Interop.Excel 操作 Excel

Microsoft.Office.Interop.Excel类库用于操作Excel,提供了丰富的类和函数,功能非常强大. 第一部分:类库简介 引用命名空间 using Excel = Microsoft.Office.Interop.Excel; 1,在使用类库之前,先总结以下几个类的用法 Application:Excel应用程序类,是Excel的引擎,new 一个实例. Excel.Application excelApp = new Excel.Application(); Workboo

[C#]WinForm利用Microsoft.Office.Interop.Excel的Worksheets.Copy来合并多个Excel档

小弟之前写了一篇多个word合并的功能 最近想到word可以合并,excel应该也可以合并 小弟之前写了一篇多个word合并的功能 最近想到word可以合并,excel应该也可以合并 首先准备好两个测试的excel档(1.xls,2.xls)放在c槽里,执行完程序就产生3.xls的合并档了 WinForm(c#)ExcelCombine.cs using System; using System.Collections.Generic; using System.ComponentModel;

window2008 64位系统无法调用Microsoft.Office.Interop组件进行文件另存的解决办法

服务器是windows server2008 64位系统,项目中需要用到Microsoft.Office.Interop组件,包括excel.word.ppt等. 重点一: 步骤 1.在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务" 2.依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM配置" 3.在"

VS编程中找不到Microsoft.Office.Core、Microsoft.Office.Interop.Word和VBIDE

在使用vs2005. vs2008. vs2010 制作包含 word等office的应用程序时,有时找不到对Microsoft.Office.Core. Microsoft.Office.Interop.Word和VBIDE 三个文件的引用,此时,如果已经安装了office 2003,那么可能是选择“典型安装”或者是“最小化安装”,那需要从“控制面板”中将其删除,然后再次安装,并选择“完全安装”,安装之后再使用以下两 种方法之一即可. 在选择“完全安装”office 2003 后,使用以下两种

Excel操作 Microsoft.Office.Interop.Excel.dll的使用

先说说题外话,前段时间近一个月,我一直在做单据导入功能,其中就涉及到Excel操作,接触Excel后发现他的api说明并不多,好在网上有很多朋友贴出了一些代码,我在不断的挫折中吸取了很多教训,现共享出来,给大家参考. 1. 最好在客户端使用,不要在B/S服务端使用,因为会受到IIS权限和占用内存影响,多人并发操作必然完蛋 2. 需要引入两个DLL,Microsoft.Office.Interop.Excel.dll和office.dll,在加上项目的时候,会报错“类型“Microsoft.Off

Visual Studio 进行Excel相关开发,Microsoft.Office.Interop.Excel.dll库

1. Interop.Excel.dll 的查找 本文中将 Microsoft.Office.Interop.Excel.dll库简称为Interop.Excel.dll库 其实在使用Visual Studio进行Office的Excel开发时,Microsoft.Office.Interop.Excel.dll 可以在类似于下面的目录中找到.并不需要再在网上下载了. E:\Program Files\Microsoft Visual Studio 11.0\Visual Studio Tool