【C#】#101 导入导出Excel

项目需求:  1、把数据导出到Excel;  2、把Excel数据导入到数据库

使用的类库:  Aspose.Cells    ExcelHelper.zip下载

一、导出【调用已经封装好的方法】【未封装的方法,步骤有主要有两个,a. 添加表头   b. 添加数据部分

  1. 打开一个文本保存对话框【SaveFileDialog控件】
  2. 调用ExcelHelper类的DataTableToExcel方法导出
复制代码
/// <summary>
        /// 导出Excel
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnExeclOutput_Click(object sender, EventArgs e)
        {
            string localFilePath = String.Empty;

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            //设置文件类型  
            saveFileDialog1.Filter = " xls files(*.xls)|*.txt|All files(*.*)|*.*";
            //设置文件名称:
            saveFileDialog1.FileName = DateTime.Now.ToString("yyyyMMddHHmm") + "-" + "员工管理表.xls";
            //保存对话框是否记忆上次打开的目录  
            saveFileDialog1.RestoreDirectory = true;

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                //获得文件路径  
                localFilePath = saveFileDialog1.FileName.ToString();
                DataTable dt = (DataTable)dgvTb.DataSource;

                bool flag = new Common.ExcelHelper(localFilePath,"").DatatableToExcel(dt);
                if (flag)
                {
                    MessageBox.Show("导出成功!,导出数据条数: "+dt.Rows.Count +"");
                }
                else
                {
                    MessageBox.Show("导出失败!");
                }
            }
        }
复制代码

 

二、导入: 【导入返回一个DataTable】

  1. 打开一个Excel,只要传入Excel文件的路径
  2. 设置从第二行的数据开始获取【不获取表头】
复制代码
/// <summary>
/// 导入
/// </summary>
/// <returns></returns>
public DataTable ExcelToDatatalbe()
{
    //打开Excel
    Workbook book = new Workbook(fullFilename);
    Worksheet sheet = book.Worksheets[0];
    Cells cells = sheet.Cells;

    //获取excel中的数据保存到一个datatable中
    DataTable dt_Import = cells.ExportDataTableAsString(0, 0, cells.MaxDataRow + 1, cells.MaxDataColumn + 1, true);
    return dt_Import;
}
复制代码

 

 

项目执行截图:

image

导入Excel截图:

image

posted @   那年、仲夏  阅读(311)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示