c# datatable excel相互转换

news/2024/7/21 4:29:45 标签: excel
		/// <summary>
        /// Excel->DataTable
        /// </summary>
        /// <param name="filePath">Excel文件路径</param>
        public static DataTable ReadExcel(string filePath)
        {
            IWorkbook iwkX;
            using (FileStream fs = File.Open(filePath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
            {
                iwkX = WorkbookFactory.Create(fs);
                fs.Close();
            }
            //sheet
            DataTable dt = new DataTable();
            for (int h = 0; h < iwkX.NumberOfSheets; h++)
            {
                ISheet sheet = iwkX.GetSheetAt(h);
                var rows = sheet.GetRowEnumerator();
                bool isMove = rows.MoveNext();
                //循环sheet
                if (isMove)
                {
                    var Cols = (IRow)rows.Current;
                    dt.TableName = sheet.SheetName;
                    for (int i = 0; i < Cols.LastCellNum; i++)
                    {
                        string str = Cols.GetCell(i).ToString();
                        dt.Columns.Add(Cols.GetCell(i).ToString());
                    }
                    while (rows.MoveNext())
                    {
                        var row = (IRow)rows.Current;
                        var dr = dt.NewRow();
                        for (int i = 0; i < row.LastCellNum; i++)
                        {
                            var cell = row.GetCell(i);
                            if (cell == null)
                            {
                                dr[i] = "";
                            }
                            else
                            {
                                string strdr = cell.ToString();
                                dr[i] = cell.ToString();
                            }
                        }
                        dt.Rows.Add(dr);
                    }
                }
            }

            return dt;
        }

        /// <summary>
        /// DataTable导出到Excel
        /// </summary>
        /// <param name="dt">DataTable</param>
        /// <param name="array">首行数组</param>
        /// <param name="fileFullName">文件名</param>
        public static void ExportToExcel(DataTable dt, string[] array, string fileFullName)
        {
            #region
            XSSFWorkbook workbook = new XSSFWorkbook();
            FileStream fs = new FileStream(fileFullName, FileMode.OpenOrCreate, FileAccess.ReadWrite);
            ISheet sheet = workbook.CreateSheet("Sheet0");
            IRow row;
            row = sheet.CreateRow(0);

            for (int i = 0; i < array.Length; i++)
            {
                row.CreateCell(i).SetCellValue(array[i]);
            }

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                row = sheet.CreateRow(i + 1);

                for (int j = 0; j < dt.Columns.Count; j++)
                {
                    row.CreateCell(j).SetCellValue(dt.Rows[i][j].ToString());
                }
            }
            workbook.Write(fs); //写入到excel

            #endregion
            // MessageBox.Show("导出成功!");
        }

http://www.niftyadmin.cn/n/1487227.html

相关文章

[转]linux terminal中使用proxy

转自&#xff1a;http://www.cnblogs.com/JoJosBizarreAdventure/p/5892383.html 在linux terminal中使用代理 方法一&#xff1a; terminal中输入 export http_proxy"http://web-proxy.xxxxxxxx.com" 方法二&#xff1a; .bashrc 中添加 export http_proxy"htt…

如何正确保存您的DVD光盘

DVD盘片发展至今&#xff0c;已经在各个领域大行其道了&#xff0c;随着DVD刻录机的不断降价、随着技术的不断成熟&#xff0c;DVD盘片的应用将会更加普及。但是&#xff0c;你对DVD盘片的保养又知道多少呢&#xff1f;也许你会觉得这是一个老生常谈的话题&#xff0c;但是&…

python coding utf-8_[Python]编码声明:是coding:utf-8还是coding=urf-8呢

推荐&#xff1a; #!/usr/bin/env python3 # -*- coding: utf-8 -*- 我们知道在Python源码的头文件中要声明编码方式&#xff0c;如果你不只是会用到ascii码&#xff0c;很多人都写得都有点差别&#xff1a; #codingutf-8 #coding:utf-8 #-*- coding:utf-8 -*- 那么怎样写才是有…

Error during artifact deployment. See server log for details.解决方法

记得添加logging.properties文件&#xff0c;开启info级别 记得添加logging.properties文件&#xff0c;开启info级别 记得添加logging.properties文件&#xff0c;开启info级别 因为idea没主动添加logging.properties文件时&#xff0c;详细信息很有可能不会打印 下面就是我没…

html自动给图片加上水印 代码_为图片添加alt标签有什么用?

什么是alt标签?alt标签其实就是网站上图片的文字提示。当你的鼠标移动到这张图片上时&#xff0c;会提示某某图片&#xff0c;正确说明图片的内容&#xff0c;从而给予用户良好的体验。图片alt属性的本意主要是当图片因某些原因不能正常显示的时候&#xff0c;网页访问者也能够…

ORA-06550: 第 1 行, 第 35 列: PLS-00103: 出现符号 PARKID在需要下列之一时::= . ( @ % ;符号 := 被替换为 PARKID 后继续。...

今天写一个操作Oracle存储过程的类的时候&#xff0c;突然发现这么一个错误。“/”应用程序中的服务器错误。 ORA-06550: 第 1 行, 第 35 列: PLS-00103: 出现符号 "PARKID"在需要下列之一时&#xff1a; : . ( % ; 符号 ":" 被替换为 "PARKID&quo…

oracle导出/导入 expdp/impdp

Oracle使用EXPDP和IMPDP数据泵进行导出导入的方法(常用方法) 使用expdp和impdp时应该注重的事项&#xff1a; 1、exp和imp是客户端工具程序&#xff0c;它们既可以在客户端使用&#xff0c;也可以在服务端使用。2、expdp和impdp是服务端的工具程序&#xff0c;他们只能在oracle…

System.Data.SqlClient.SqlException:“关键字 ‘user‘ 附近有语法错误。”

sqlserver 不能用user作为表名&#xff0c;不能用desc作为列名 sqlserver 不能用user作为表名&#xff0c;不能用desc作为列名 sqlserver 不能用user作为表名&#xff0c;不能用desc作为列名 总结&#xff0c;在开发过程中&#xff0c;如果发现sql语句没错&#xff0c;其他方面…