最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C#把DataTable導(dǎo)出為Excel文件

 更新時(shí)間:2022年04月10日 15:01:59   作者:農(nóng)碼一生  
這篇文章介紹了C#把DataTable導(dǎo)出為Excel文件的方法,文中通過示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

實(shí)現(xiàn)DataTable轉(zhuǎn)為Excel文件,和上次分享的Excel文件轉(zhuǎn)為DataTable互為反操作。DataTable轉(zhuǎn)化為Excel文件是通過傳入一個(gè)DataTable類型的參數(shù),然后將傳入的DataTable轉(zhuǎn)化為Excel文件。實(shí)現(xiàn)關(guān)鍵代碼如下:

方法一:

/// <summary>
/// DataTable數(shù)據(jù)導(dǎo)出Excel
/// </summary>
/// <param name="data"></param>
/// <param name="filepath"></param>
public static void DataTableExport(DataTable data, string filepath)
{
    try
    {
        //Workbook book = new Workbook("E:\\test.xlsx"); //打開工作簿
        Workbook book = new Workbook(); //創(chuàng)建工作簿
        Worksheet sheet = book.Worksheets[0]; //創(chuàng)建工作表
        Cells cells = sheet.Cells; //單元格
        //創(chuàng)建樣式
        Aspose.Cells.Style style = book.Styles[book.Styles.Add()];
        style.Borders[Aspose.Cells.BorderType.LeftBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應(yīng)用邊界線 左邊界線  
        style.Borders[Aspose.Cells.BorderType.RightBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應(yīng)用邊界線 右邊界線  
        style.Borders[Aspose.Cells.BorderType.TopBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應(yīng)用邊界線 上邊界線  
        style.Borders[Aspose.Cells.BorderType.BottomBorder].LineStyle = Aspose.Cells.CellBorderType.Thin; //應(yīng)用邊界線 下邊界線   
        style.HorizontalAlignment = TextAlignmentType.Center; //單元格內(nèi)容的水平對(duì)齊方式文字居中
        style.Font.Name = "宋體"; //字體
        style1.Font.IsBold = true; //設(shè)置粗體
        style.Font.Size = 11; //設(shè)置字體大小
        //style.ForegroundColor = System.Drawing.Color.FromArgb(153, 204, 0); //背景色
        //style.Pattern = Aspose.Cells.BackgroundType.Solid; //背景樣式
        //style.IsTextWrapped = true; //單元格內(nèi)容自動(dòng)換行
        
        //表格填充數(shù)據(jù)
        int Colnum = data.Columns.Count;//表格列數(shù) 
        int Rownum = data.Rows.Count;//表格行數(shù) 
        //生成行 列名行 
        for (int i = 0; i < Colnum; i++)
        {
            cells[0, i].PutValue(data.Columns[i].ColumnName); //添加表頭
            cells[0, i].SetStyle(style); //添加樣式
            //cells.SetColumnWidth(i, data.Columns[i].ColumnName.Length * 2 + 1.5); //自定義列寬
            //cells.SetRowHeight(0, 30); //自定義高
        }
        //生成數(shù)據(jù)行 
        for (int i = 0; i < Rownum; i++)
        {
            for (int k = 0; k < Colnum; k++)
            {
                cells[1 + i, k].PutValue(data.Rows[i][k].ToString()); //添加數(shù)據(jù)
                cells[1 + i, k].SetStyle(style); //添加樣式
            }
            cells[1 + i, 5].Formula = "=B" + (2 + i) + "+C" + (2 + i);//給單元格設(shè)置計(jì)算公式,計(jì)算班級(jí)總?cè)藬?shù)
        }
        sheet.AutoFitColumns(); //自適應(yīng)寬
        book.Save(filepath); //保存
        GC.Collect();
    }
    catch (Exception e)
    {
        logger.Error("生成excel出錯(cuò):" + e.Message);
    }
}

方法二:

public void ToExcel(DataTable dt)
    {
        #region 3s  
        var FilePath = @"D:\ToExcel\";//產(chǎn)生Excel文件路徑
        DeleteFile(FilePath);
        //創(chuàng)建全新的Workbook 
        var workbook = new HSSFWorkbook();//一個(gè)sheet最多65536行
        var count = 0;
        for (double i = 0; i < Convert.ToDouble(dt.Rows.Count) / Convert.ToDouble(65534); i++)//每個(gè)Excel文件的一個(gè)頁簽只能存放65536行數(shù)據(jù)
        {
            var row_index = 0;
            //創(chuàng)建Sheet
            workbook.CreateSheet("Sheet" + i);
            //根據(jù)Sheet名字獲得Sheet對(duì)象  
            var sheet = workbook.GetSheet("Sheet" + i);
            IRow row;
            row = sheet.CreateRow(row_index);

            //寫入標(biāo)題
            for (int j = 0; j < dt.Columns.Count; j++)
            {
                row.CreateCell(j).SetCellValue(dt.Columns[j].Caption.ToString());
            }
            row = sheet.CreateRow(++row_index);

            //寫入數(shù)據(jù)
            for (int j = 0; j < (dt.Rows.Count - count > 65534 ? 65534 : dt.Rows.Count - count); j++)
            {
                var r = dt.Rows[j + count];
                for (int k = 0; k <dt.Columns.Count; k++)
                {
                    row.CreateCell(k).SetCellValue(r[k].ToString());

                    //如果是數(shù)字,判斷是否需要轉(zhuǎn)換為數(shù)字
                    //if (IsNumeric(r[k].ToString()))
                    //{
                    //    row.CreateCell(k).SetCellValue(Convert.ToDouble(r[k].ToString()));
                    //}
                    //else
                    //{
                    //    row.CreateCell(k).SetCellValue(r[k].ToString());
                    //}
                }

                row = sheet.CreateRow(++row_index);
            }
            count += row_index - 2;
        }
        //保存Workbook方式一: 以文件形式保存到服務(wù)器中(每次導(dǎo)出都會(huì)生成一個(gè)文件,慎重使用)
        var FileName = DateTime.Now.ToString("yyyyMMddHHmmss") + ".xls";

        var sw = File.Create(FilePath + FileName);
        workbook.Write(sw);
        sw.Close();
        var EC = new ExcelConverter();
        EC.WebopenExcel(Response, FilePath + FileName);
        #endregion
    }

到此這篇關(guān)于C#把DataTable導(dǎo)出為Excel文件的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#如何通過probing指定dll尋找文件夾詳解

    C#如何通過probing指定dll尋找文件夾詳解

    這篇文章主要給大家介紹了關(guān)于C#如何通過probing指定dll尋找文件夾的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-12-12
  • c#利用Grahics進(jìn)行圖片裁剪

    c#利用Grahics進(jìn)行圖片裁剪

    這兩天做了一個(gè)圖片對(duì)比工具,里面要處理兩張大的圖片,所以要對(duì)圖片先進(jìn)行裁剪,下面看看我的方法吧
    2013-12-12
  • C#設(shè)計(jì)模式之Visitor訪問者模式解決長(zhǎng)隆歡樂世界問題實(shí)例

    C#設(shè)計(jì)模式之Visitor訪問者模式解決長(zhǎng)隆歡樂世界問題實(shí)例

    這篇文章主要介紹了C#設(shè)計(jì)模式之Visitor訪問者模式解決長(zhǎng)隆歡樂世界問題,簡(jiǎn)單描述了訪問者模式的定義并結(jié)合具體實(shí)例形式分析了C#使用訪問者模式解決長(zhǎng)隆歡樂世界問題的具體實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-09-09
  • C#基礎(chǔ)入門之算法:交換

    C#基礎(chǔ)入門之算法:交換

    本文主要介紹了C#中算法:交換的相關(guān)知識(shí),具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-03-03
  • UnityShader3實(shí)現(xiàn)彩光效果

    UnityShader3實(shí)現(xiàn)彩光效果

    這篇文章主要為大家詳細(xì)介紹了UnityShader3實(shí)現(xiàn)彩光效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • C#從實(shí)體對(duì)象集合中導(dǎo)出Excel的代碼

    C#從實(shí)體對(duì)象集合中導(dǎo)出Excel的代碼

    數(shù)據(jù)的導(dǎo)出是項(xiàng)目中經(jīng)常要實(shí)現(xiàn)的功能,就拿最常見的要導(dǎo)出成Excel來說,網(wǎng)上看來看去,都是介紹從Datatable中導(dǎo)出
    2008-08-08
  • C#中winform控制textbox輸入只能為數(shù)字的方法

    C#中winform控制textbox輸入只能為數(shù)字的方法

    這篇文章主要介紹了C#中winform控制textbox輸入只能為數(shù)字的方法,包括使用keyPress事件限制鍵盤輸入以及TextChanged事件限制粘貼等情況,來實(shí)現(xiàn)控制輸入為數(shù)字的功能,需要的朋友可以參考下
    2015-01-01
  • c# 對(duì)CSV文件操作(寫入、讀取、修改)

    c# 對(duì)CSV文件操作(寫入、讀取、修改)

    這篇文章主要介紹了c# 如何對(duì)CSV文件操作,幫助大家更好的理解和學(xué)習(xí)C#,感興趣的朋友可以了解下
    2020-08-08
  • Unity使用攝像機(jī)實(shí)現(xiàn)望遠(yuǎn)鏡效果

    Unity使用攝像機(jī)實(shí)現(xiàn)望遠(yuǎn)鏡效果

    這篇文章主要為大家詳細(xì)介紹了Unity攝使用像機(jī)實(shí)現(xiàn)望遠(yuǎn)鏡效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • C#讀取視頻的寬度和高度等信息的方法

    C#讀取視頻的寬度和高度等信息的方法

    這篇文章主要介紹了C#讀取視頻的寬度和高度等信息的方法,通過執(zhí)行一條CMD命令來實(shí)現(xiàn)讀取視頻寬度和高度的功能,具有不錯(cuò)的實(shí)用價(jià)值,需要的朋友可以參考下
    2014-11-11

最新評(píng)論

吉木乃县| 松潘县| 宁国市| 平昌县| 太仓市| 嵊泗县| 无极县| 巴青县| 东城区| 綦江县| 集安市| 福建省| 镇平县| 灌阳县| 旬邑县| 娱乐| 获嘉县| 德阳市| 华阴市| 嘉黎县| 涞水县| 宁陕县| 安顺市| 青海省| 汪清县| 紫阳县| 启东市| 沧州市| 扶绥县| 密云县| 曲沃县| 贡嘎县| 陆河县| 凌海市| 夏津县| 孟连| 武鸣县| 阿克陶县| 田东县| 宜兰县| 阜城县|