zoukankan      html  css  js  c++  java
  • npoi

     DataSet ds = new DataSet();
                DataTable dt = null;
    
                OpenFileDialog sflg = new OpenFileDialog();
                sflg.Filter = "Excel(*.xls)|*.xls|Excel(*.xlsx)|*.xlsx";
                if (sflg.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                FileStream fs = new FileStream(sflg.FileName, FileMode.Open, FileAccess.Read);
                NPOI.HSSF.UserModel.HSSFWorkbook book = new NPOI.HSSF.UserModel.HSSFWorkbook(fs);
                int sheetCount = book.NumberOfSheets;
                for (int sheetIndex = 0; sheetIndex < sheetCount; sheetIndex++)
                {
                    NPOI.SS.UserModel.ISheet sheet = book.GetSheetAt(sheetIndex);
                    if (sheet == null) continue;
                    
                    NPOI.SS.UserModel.IRow row = sheet.GetRow(0);
                    if (row == null) continue;
    
                    int firstCellNum = row.FirstCellNum;
                    int lastCellNum = row.LastCellNum;
                    if (firstCellNum == lastCellNum) continue;
    
                    dt = new DataTable(sheet.SheetName);
                    for (int i = firstCellNum; i < lastCellNum; i++)
                    {
                        dt.Columns.Add(row.GetCell(i).StringCellValue, typeof(string));
                    }
    
                    for (int i = 1; i <= sheet.LastRowNum; i++)
                    {
                        DataRow newRow = dt.Rows.Add();
                        for (int j = firstCellNum; j < lastCellNum; j++)
                        {
                            newRow[j] = sheet.GetRow(i).GetCell(j).StringCellValue;
                        }
                    }
    
                    ds.Tables.Add(dt);
                }           
            }
    
            private void btnExport_Click(object sender, EventArgs e)
            {
                SaveFileDialog sflg = new SaveFileDialog();
                sflg.Filter = "Excel(*.xls)|*.xls|Excel(*.xlsx)|*.xlsx";
                if (sflg.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
                {
                    return;
                }
                //this.gridView1.ExportToXls(sflg.FileName);
                //NPOI.xs book = new NPOI.HSSF.UserModel.HSSFWorkbook();
                NPOI.SS.UserModel.IWorkbook book = null;
                if (sflg.FilterIndex == 1)
                {
                    book = new NPOI.HSSF.UserModel.HSSFWorkbook();
                }
                else
                {
                    book = new NPOI.XSSF.UserModel.XSSFWorkbook();
                }
    
                NPOI.SS.UserModel.ISheet sheet = book.CreateSheet("test_001");
    
                // 添加表头
                NPOI.SS.UserModel.IRow row = sheet.CreateRow(0);
                int index = 0;
                foreach (GridColumn item in this.gridView1.Columns)
                {
                    if (item.Visible)
                    {
                        NPOI.SS.UserModel.ICell cell = row.CreateCell(index);
                        cell.SetCellType(NPOI.SS.UserModel.CellType.String);                    
                        cell.SetCellValue(item.Caption);
                        index++;
                    }
                }
    
                // 添加数据
               
                for (int i = 0; i < this.gridView1.DataRowCount; i++)
                {
                    index = 0;
                    row = sheet.CreateRow(i + 1);
                    foreach (GridColumn item in this.gridView1.Columns)
                    {
                        if (item.Visible)
                        {
                            NPOI.SS.UserModel.ICell cell = row.CreateCell(index);
                            cell.SetCellType(NPOI.SS.UserModel.CellType.String);
                            cell.SetCellValue(this.gridView1.GetRowCellValue(i, item).ToString());
                            index++;
                        }
                    }
                }
                // 写入 
                System.IO.MemoryStream ms = new System.IO.MemoryStream();
                book.Write(ms);
                book = null;
    
                using (FileStream fs = new FileStream(sflg.FileName, FileMode.Create, FileAccess.Write))
                {
                    byte[] data = ms.ToArray();
                    fs.Write(data, 0, data.Length);
                    fs.Flush();
                }
    
                ms.Close();
                ms.Dispose();
  • 相关阅读:
    网易考拉海购:电商高并发架构设计的铁律
    时序数据库(TSDB)-为万物互联插上一双翅膀
    从互联网+角度看云计算的现状与未来
    四两拨千斤式的攻击!如何应对Memcache服务器漏洞所带来的DDoS攻击?
    知物由学 | AI时代,那些黑客正在如何打磨他们的“利器”?(一)
    知物由学 | AI时代,那些黑客正在如何打磨他们的“利器”?(二)
    应对羊毛党的老手段不管用了,但有些公司依然有办法,他们是怎么做的?
    微服务化的数据库设计与读写分离
    Kubernetes性能测试实践
    微服务化之无状态化与容器化
  • 原文地址:https://www.cnblogs.com/jooucks/p/6694077.html
Copyright © 2011-2022 走看看