zoukankan      html  css  js  c++  java
  • 使用ClosedXML读写excel

            private void ExportToExcel(DataTable dt)
            {
                using (SaveFileDialog sfd = new SaveFileDialog() { Filter = "xlsx files|*.xlsx", DefaultExt = "xlsx" }) 
                {
                    if (sfd.ShowDialog() != DialogResult.OK)
                    {
                        return;
                    }
                    using (var workbook = new XLWorkbook())
                    {
                        if (dt.TableName == "") dt.TableName = "sheet1";
                        var worksheet = workbook.Worksheets.Add(dt.TableName);
                        var header = worksheet.FirstRow();
                        for (int i = 0; i < dt.Columns.Count; ++i)
                        {
                            worksheet.Cell(1, i + 1).Value = dt.Columns[i].ColumnName;
                            worksheet.Cell(1, i + 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                            worksheet.Cell(1, i + 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;
                        }
                        for (int i = 0; i < dt.Rows.Count; ++i)
                        {
                            for (int j = 0; j < dt.Columns.Count; ++j)
                            {
                                worksheet.Cell(i + 2, j + 1).Value = dt.Rows[i][j].ToString();
                                worksheet.Cell(i + 2, j + 1).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Center;
                                worksheet.Cell(i + 2, j + 1).Style.Alignment.Vertical = XLAlignmentVerticalValues.Center;
                            }
                        }
                        workbook.SaveAs(sfd.FileName);
                    }
                }
            }
            private DataTable ImportExcelToDataTable()
            {
                DataTable dt = new DataTable();
                using (OpenFileDialog ofd = new OpenFileDialog())
                {
                    if (ofd.ShowDialog() != DialogResult.OK)
                    {
                        return dt;
                    }
                    using (XLWorkbook workBook = new XLWorkbook(ofd.FileName))
                    {
                        IXLWorksheet workSheet = workBook.Worksheet(1);                  
                        bool firstRow = true;
                        foreach (var row in workSheet.Rows())
                        {
                            if (firstRow)
                            {
                                foreach (IXLCell cell in row.Cells())
                                {
                                    dt.Columns.Add(cell.Value.ToString());
                                }
                                firstRow = false;
                            }
                            else
                            {
                                dt.Rows.Add();
                                int i = 0;
                                foreach (IXLCell cell in row.Cells())
                                {
                                    dt.Rows[dt.Rows.Count - 1][i] = cell.Value.ToString();
                                    i++;
                                }
                            }
                        }
                    }
                    return dt;
                }
            }
  • 相关阅读:
    Linux Bash常用命令记录
    Ubuntu 环境 openMVG+openMVS 配置
    GDB调试系列之了解GDB
    OpenCV4系列之图像梯度
    ffmpeg基本功能使用
    GDB调试系列之基础入门
    STL std::pair基本用法
    判断机器CPU的大小端模式并将数据转换成小端形式
    由对象集合创建各种映射_流
    静态类型与函数重载
  • 原文地址:https://www.cnblogs.com/franklin2018/p/15113383.html
Copyright © 2011-2022 走看看