using System ;
using System.IO ;
using System.Collections.Generic ;
using NPOI.HSSF.UserModel ;
using NPOI.SS.UserModel ;
using NPOI.XSSF.UserModel ;
using NPOI.HSSF.Util ;
using NPOI.SS.Util ;
using NPOI.XWPF.UserModel ;
namespace Npoi.Samples.CreateNewSpreadsheet
{
public class Program
{
public static void Main ( string [ ] args ) {
ExportExcel ( ) ;
//ExportExcelHSSF();
ExportWord ( ) ;
//ImportExcelHSSF();
}
private static void ImportExcelHSSF ( ) {
Stream templateStream = new MemoryStream ( ) ;
using ( var file = new FileStream ( "D:\\2007.xlsx" , FileMode . Open , FileAccess . Read ) ) {
file . CopyTo ( templateStream ) ;
templateStream . Seek ( 0 , SeekOrigin . Begin ) ;
}
var templateWorkbook = new XSSFWorkbook ( templateStream ) ;
//var sheet = templateWorkbook.GetSheetAt(0);
ISheet sheet = templateWorkbook . CreateSheet ( "Test" ) as XSSFSheet ;
sheet . SetAutoFilter ( new CellRangeAddress ( 0 , sheet . LastRowNum , 0 , 2 ) ) ;
var fileStream = new FileStream ( "D:\\moban2.xls" , FileMode . Create ) ;
templateWorkbook . Write ( fileStream ) ;
fileStream . Close ( ) ;
//Console.WriteLine(templateWorkbook.GetSheetAt(0).PhysicalNumberOfRows);
}
class XXX
{
public int Cell { get ; set ; }
public string Value { get ; set ; }
}
private static void ImportExcel ( ) {
var newFile = "newbook2.core.xlsx" ;
var celldata = new List < XXX > {
new XXX { Cell = 0 , Value = "00000" } ,
new XXX { Cell = 1 , Value = "1111111" }
} ;
using ( var fs = new FileStream ( newFile , FileMode . Create , FileAccess . Write ) ) {
//excelPath-模板路径,为传递过来的参数
IWorkbook wb = new XSSFWorkbook ( "newbook.core.xlsx" ) ;
ISheet sheet1 = wb . GetSheetAt ( 0 ) ;
//celldata-需要插入的数据,参数
foreach ( var x in celldata ) {
IRow row = sheet1 . GetRow ( x . Cell ) ;
row . GetCell ( x . Cell ) . SetCellValue ( x . Value ) ;
}
wb . Write ( fs ) ;
}
}
private static void ExportExcelHSSF ( ) {
var newFile = @"newbook.core.xls" ;
using ( var fs = new FileStream ( newFile , FileMode . Create , FileAccess . Write ) ) {
IWorkbook workbook = new HSSFWorkbook ( ) ;
ISheet sheet1 = workbook . CreateSheet ( "Sheet1" ) ;
sheet1 . AddMergedRegion ( new CellRangeAddress ( 0 , 0 , 0 , 1 0 ) ) ;
//ICreationHelper cH = wb.GetCreationHelper();
var rowIndex = 0 ;
IRow row = sheet1 . CreateRow ( rowIndex ) ;
row . Height = 3 0 * 8 0 ;
var cell = row . CreateCell ( 0 ) ;
var font = workbook . CreateFont ( ) ;
font . IsBold = true ;
font . Color = HSSFColor . DarkBlue . Index2 ;
cell . CellStyle . SetFont ( font ) ;
cell . SetCellValue ( "A very long piece of text that I want to auto-fit innit, yeah. Although if it gets really, really long it'll probably start messing up more." ) ;
sheet1 . AutoSizeColumn ( 0 ) ;
rowIndex + + ;
// 新增試算表。
var sheet2 = workbook . CreateSheet ( "My Sheet" ) ;
// 建立儲存格樣式。
var style1 = workbook . CreateCellStyle ( ) ;
style1 . FillForegroundColor = HSSFColor . Blue . Index2 ;
style1 . FillPattern = FillPattern . SolidForeground ;
var style2 = workbook . CreateCellStyle ( ) ;
style2 . FillForegroundColor = HSSFColor . Yellow . Index2 ;
style2 . FillPattern = FillPattern . SolidForeground ;
// 設定儲存格樣式與資料。
var cell2 = sheet2 . CreateRow ( 0 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 0 ) ;
cell2 = sheet2 . CreateRow ( 1 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style2 ;
cell2 . SetCellValue ( 1 ) ;
cell2 = sheet2 . CreateRow ( 2 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 2 ) ;
cell2 = sheet2 . CreateRow ( 3 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style2 ;
cell2 . SetCellValue ( 3 ) ;
cell2 = sheet2 . CreateRow ( 4 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 4 ) ;
workbook . Write ( fs ) ;
}
Console . WriteLine ( "Excel Done" ) ;
}
private static void ExportExcel ( ) {
var newFile = @"newbook.core.xlsx" ;
using ( var fs = new FileStream ( newFile , FileMode . Create , FileAccess . Write ) ) {
IWorkbook workbook = new XSSFWorkbook ( ) ;
ISheet sheet1 = workbook . CreateSheet ( "Sheet1" ) ;
sheet1 . AddMergedRegion ( new CellRangeAddress ( 0 , 0 , 0 , 1 0 ) ) ;
//ICreationHelper cH = wb.GetCreationHelper();
var rowIndex = 0 ;
IRow row = sheet1 . CreateRow ( rowIndex ) ;
row . Height = 3 0 * 8 0 ;
var cell = row . CreateCell ( 0 ) ;
var font = workbook . CreateFont ( ) ;
font . IsBold = true ;
font . Color = HSSFColor . DarkBlue . Index2 ;
cell . CellStyle . SetFont ( font ) ;
cell . SetCellValue ( "A very long piece of text that I want to auto-fit innit, yeah. Although if it gets really, really long it'll probably start messing up more." ) ;
sheet1 . AutoSizeColumn ( 0 ) ;
rowIndex + + ;
// 新增試算表。
var sheet2 = workbook . CreateSheet ( "My Sheet" ) ;
// 建立儲存格樣式。
var style1 = workbook . CreateCellStyle ( ) ;
style1 . FillForegroundColor = HSSFColor . Blue . Index2 ;
style1 . FillPattern = FillPattern . SolidForeground ;
var style2 = workbook . CreateCellStyle ( ) ;
style2 . FillForegroundColor = HSSFColor . Yellow . Index2 ;
style2 . FillPattern = FillPattern . SolidForeground ;
// 設定儲存格樣式與資料。
var cell2 = sheet2 . CreateRow ( 0 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 0 ) ;
cell2 = sheet2 . CreateRow ( 1 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style2 ;
cell2 . SetCellValue ( 1 ) ;
cell2 = sheet2 . CreateRow ( 2 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 2 ) ;
cell2 = sheet2 . CreateRow ( 3 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style2 ;
cell2 . SetCellValue ( 3 ) ;
cell2 = sheet2 . CreateRow ( 4 ) . CreateCell ( 0 ) ;
cell2 . CellStyle = style1 ;
cell2 . SetCellValue ( 4 ) ;
workbook . Write ( fs ) ;
}
Console . WriteLine ( "Excel Done" ) ;
}
private static void ExportWord ( ) {
var newFile2 = @"newbook.core.docx" ;
using ( var fs = new FileStream ( newFile2 , FileMode . Create , FileAccess . Write ) ) {
XWPFDocument doc = new XWPFDocument ( ) ;
var p0 = doc . CreateParagraph ( ) ;
p0 . Alignment = ParagraphAlignment . LEFT ;
XWPFRun r0 = p0 . CreateRun ( ) ;
r0 . FontFamily = "宋体" ;
r0 . FontSize = 1 8 ;
r0 . IsBold = true ;
r0 . SetText ( "未登录过学生的账号密码" ) ;
doc . Write ( fs ) ;
}
Console . WriteLine ( "Word Done" ) ;
}
}
}