是否NPOI必须的.xlsx格式的支持? [英] Does NPOI have support to .xlsx format?

查看:544
本文介绍了是否NPOI必须的.xlsx格式的支持?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

威尔NPOI DLL识别的.xlsx 文件?



目前我使用NPOI 1.2.5版本的DLL为Microsoft Excel 97-2003,但我需要访问扩展Excel表格的.xlsx 也。



NPOI会支持以上?



代码段:

 静态无效的主要(字串[] args ){
XSSFWorkbook xssfwb;

使用(的FileStream文件=新的FileStream(
@C:\Users\347702\Desktop\Hello.xlsx,
FileMode.Open,FileAccess的。读)){
xssfwb =新XSSFWorkbook(文件);
}

ISheet表= xssfwb.GetSheet(工作表Sheet1);
sheet.GetRow(1048576);
Console.WriteLine(sheet.GetRow(1048576).GetCell(0).StringCellValue);
}


解决方案

是它。 NPOI 2.0测试版的工作。下面是一个示例代码,让你开始:

 类节目
{
静态XSSFWorkbook hssfworkbook;
静态数据集dataSet1的=新的DataSet();

静态无效的主要(字串[] args)
{
InitializeWorkbook(@E:\Docs\HoursWidget_RTM.xlsx);
xlsxToDT();

DisplayData(dataSet1.Tables [0]);

到Console.ReadLine();
}用

静态无效InitializeWorkbook(字符串路径)
{
(的FileStream文件=新的FileStream(路径,FileMode.Open,FileAccess.Read))
{
hssfworkbook =新XSSFWorkbook(文件);
}
}

静态无效xlsxToDT()
{
DataTable的DT =新的DataTable();
ISheet片= hssfworkbook.GetSheetAt(1);
IRow headerRow = sheet.GetRow(0);
IEnumerator的行数= sheet.GetRowEnumerator();

INT colCount = headerRow.LastCellNum;
INT rowCount等= sheet.LastRowNum;

的for(int c = 0;℃下colCount; C ++)
{

dt.Columns.Add(headerRow.GetCell(C)的ToString( ));
}

布尔skipReadingHeaderRow = rows.MoveNext();
,而(rows.MoveNext())
{
IRow行=(XSSFRow)rows.Current;
的DataRow博士= dt.NewRow();

的for(int i = 0; I< colCount;我++)
{
细胞ICELL = row.GetCell(I)

如果(细胞!= NULL)
{
博士[I] = cell.ToString();
}
}
dt.Rows.Add(DR);
}

hssfworkbook = NULL;
表= NULL;
dataSet1.Tables.Add(DT);
}

静态无效DisplayData(DataTable的表)
{
的foreach(DataRow的行table.Rows)
{
的foreach(DataColumn的在table.Columns COL)
{
Console.WriteLine({0} = {1},col.ColumnName,行[COL]);
}
Console.WriteLine(------------------------------------ -------);
}
}
}


Will NPOI DLL recognize .xlsx file?

Currently I'm using NPOI 1.2.5 version DLL for Microsoft Excel 97-2003, but I need to access Excel sheets of extension .xlsx also.

Will NPOI support the above?

Code snippet:

static void Main(string[] args) {
    XSSFWorkbook xssfwb;

    using(FileStream file=new FileStream(
            @"C:\Users\347702\Desktop\Hello.xlsx",
            FileMode.Open, FileAccess.Read)) {
        xssfwb=new XSSFWorkbook(file);
    }

    ISheet sheet=xssfwb.GetSheet("sheet1");
    sheet.GetRow(1048576);
    Console.WriteLine(sheet.GetRow(1048576).GetCell(0).StringCellValue);
}

解决方案

Yes it does. NPOI 2.0 beta works. Here's a sample code to get you started:

class Program
{
static XSSFWorkbook hssfworkbook;
static DataSet dataSet1 = new DataSet();

static void Main(string[] args)
{
    InitializeWorkbook(@"E:\Docs\HoursWidget_RTM.xlsx");
    xlsxToDT();

    DisplayData(dataSet1.Tables[0]);

    Console.ReadLine();
}

static void InitializeWorkbook(string path)
{
    using (FileStream file = new FileStream(path, FileMode.Open, FileAccess.Read))
    {
        hssfworkbook = new XSSFWorkbook(file);
    }
}

static void xlsxToDT()
{
    DataTable dt = new DataTable();
    ISheet sheet = hssfworkbook.GetSheetAt(1);
    IRow headerRow = sheet.GetRow(0);
    IEnumerator rows = sheet.GetRowEnumerator();

    int colCount = headerRow.LastCellNum;
    int rowCount = sheet.LastRowNum;

    for (int c = 0; c < colCount; c++)
    {

        dt.Columns.Add(headerRow.GetCell(c).ToString());
    }

    bool skipReadingHeaderRow = rows.MoveNext();
    while (rows.MoveNext())
    {
        IRow row = (XSSFRow)rows.Current;
        DataRow dr = dt.NewRow();

        for (int i = 0; i < colCount; i++)
        {
            ICell cell = row.GetCell(i);

            if (cell != null)
            {
                dr[i] = cell.ToString();
            }
        }
        dt.Rows.Add(dr);
    }

    hssfworkbook = null;
    sheet = null;
    dataSet1.Tables.Add(dt);
}

static void DisplayData(DataTable table)
{
    foreach (DataRow row in table.Rows)
    {
        foreach (DataColumn col in table.Columns)
        {
            Console.WriteLine("{0} = {1}", col.ColumnName, row[col]);
        }
        Console.WriteLine("-------------------------------------------");
    }
}
}

这篇关于是否NPOI必须的.xlsx格式的支持?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆