• c#导出Excel文件,多表加分页。。。


    最近项目中需要导出Excel文件:

    要求是这样的:

    实现的没啥技术,就是调用了几个方法工具方法而已,以后备用


    -------------------------------

    --------------------------------

    先看下基本功能吧--:

    --------------------------------

    --------------------------------

    --------------------------------

    --------------------------------

    前台页面,只有俩按钮--~!

    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="ToExcle.aspx.cs" Inherits="Maps_ToExcle" %>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
    <title></title>

    <script type="text/javascript" src="static/jquery-1.4.1.min.js"></script>

    <script type="text/javascript">
    var currpage;
    var downurl = ""; //下载文件地址
    var timer = ""; //定时器
    var runcount = 0; //要输出的>个数

    $(
    function() {//初始化绑定
    $("#btn_toExcel").click(function() {
    $(
    this).attr("disabled", "disabled");
    saveToExcelData();
    });
    $(
    "#btn_downExcel").click(function() {
    btn_downExcel()
    });
    })
    function getAjax(_url) {//ajax操作
    $.ajax({
    url: _url,
    type:
    'get',
    beforeSend:
    function(XMLHttpRequest) {
    $(
    '#ajaxloadimg,#ajax_msg').show();
    timer
    = window.setInterval("intervalRun()", 500);
    },
    success:
    function(data, textStatus) {
    downurl
    = data;
    $(
    '#ajaxloadimg').hide();
    $(
    "#btn_downExcel").attr("disabled", "");
    window.clearInterval(timer);
    $(
    '#ajax_msg').text("生成完毕,如没有自动下载,请点击下载按钮。");
    openfile(data);
    },
    error:
    function(XMLHttpRequest, textStatus) {
    $(
    "#btn_toExcel").attr("disabled", "");
    $(
    '#ajaxloadimg').hide();
    window.clearInterval(timer);
    $(
    '#ajax_msg').text("生成错误,请重试。");
    },
    complete:
    function(XMLHttpRequest, textStatus) {
    window.clearInterval(timer);
    }
    });
    }
    function saveToExcelData() {//设置要请求的地址数据
    var url = 'ToExcelHandler.ashx?' + new Date() + '&action=test';
    getAjax(url);
    }
    function openfile(_serverPath) {//打开下载对话框
    var _left = (screen.width - 350) / 2;
    var _top = (screen.height - 130 - 63) / 2;
    var a = window.open(_serverPath, "_blank", "scrollbars=yes, resizable=yes,menubar=no,toolbar=yes,width=350,height=130,left=" + _left + ",top=" + _top);
    a.document.execCommand(
    "SaveAs");
    //a.close();
    }
    function intervalRun() {//定时运行方法,提示用
    runcount++;
    if (runcount > 3) {
    runcount
    = 0;
    }
    var _str = "";
    for (var _i = 1; _i <= runcount; _i++) {
    _str
    += ">";
    }
    $(
    "#ajax_msg").text("正在生成打印文件,请稍后" + _str);
    }
    function btn_downExcel() {//下载按钮事件
    openfile(downurl);
    }
    </script>

    </head>
    <body>
    <form id="form1" runat="server">
    <div>
    <input id="btn_toExcel" type="button" value="导出" />
    <input id="btn_downExcel" type="button" value="下载" disabled="disabled" />
    <img style='display: none;' id='ajaxloadimg' src='image/ajax-loader.gif' alt="请稍后" />&nbsp;&nbsp;<span
    style="display: none; font-size: 12px; height: 20px; line-height: 20px;" id="ajax_msg"></span>
    </div>
    </form>
    </body>
    </html>

    后台处理代码:

    using System;
    using System.Web;
    using System.Reflection;
    using Microsoft.Office.Interop.Excel;
    using System.IO;
    using System.Collections;
    using System.Collections.Generic;
    using System.Web.SessionState;

    namespace prientExcel
    {
    public class ToExcelHandler : IHttpHandler, IRequiresSessionState
    {
    #region
    HttpRequest request
    = null;
    HttpResponse response
    = null;
    string action = string.Empty;
    object miss = Missing.Value;

    Dictionary
    <string, string> diction = new Dictionary<string, string>();
    ArrayList arrayColName;
    ArrayList arrayShowName;
    ArrayList arrayType;
    dbcommeninit dbcmm
    = new dbcommeninit();

    Application excelApp
    = null;
    Worksheet workSheet
    = null;
    string FilePath = @"打印数据.xls";
    string DirPath = @"Download";
    int TYPE = 0;
    System.Data.DataTable dt
    = null;
    List
    <string> tablename_list = new List<string>();
    int recount = 0;
    int onpage = 1;
    int pagesize = 8;

    string tablename = "";
    int LOOP1 = 1;//需要输出的分类数量
    int LOOP2 = 1;//需要输出的工作表数量
    #endregion

    public void ProcessRequest(HttpContext context)
    {
    request
    = context.Request;
    response
    = context.Response;
    action
    = request.Params["action"];
    codeHandle(action);
    }

    #region 请求处理
    private void codeHandle(string _action)
    {
    switch (_action)
    {
    case "test":
    createExcel();
    break;
    default:
    break;
    }
    }
    #endregion

    private void DataTest()
    {
    tablename_list.Add(
    "YG_PL_RPTDWZD");
    tablename_list.Add(
    "YG_PL_DIARYLEDGER");
    tablename_list.Add(
    "YG_PL_DWLEDGER");
    //tablename_list.Add("YG_PL_KMYE");
    //tablename_list.Add("YG_PL_WLLEDGER");
    //tablename_list.Add("yg_pl_voucher");
    }

    private void getDataTable(string _tablename)
    {

    recount
    = Convert.ToInt32(YG.DBUtility.DbHelperOra.ExecuteSql_obj("select count(*) from " + _tablename));

    if (TYPE == 1)
    {
    recount
    = 10;
    }

    dt
    = YG.DBUtility.DbHelperOra.PageBind(_tablename, "", getColumns(_tablename), " id DESC", 20, onpage, out recount);

    dt.Columns.Remove(
    "rk");

    }

    #region Excel文件操作
    /// <summary>
    /// 创建excel
    /// </summary>
    private void createExcel()
    {
    excelApp
    = new Application();
    excelApp.Workbooks.Add(miss);
    DataTest();
    int _workSheetCount = getWorkSheetCount();//获取需要的工作表数量
    this.initExcel();//初始化EXCEL
    try
    {
    do
    {
    TYPE
    = LOOP1;
    workSheet
    = (Worksheet)excelApp.Worksheets[LOOP2];
    workSheet.Activate();
    tablename
    = tablename_list[LOOP1 - 1];//测试
    getDataTable(tablename_list[LOOP1 - 1]);
    addDataExcelSheet();
    LOOP1
    ++;
    if (LOOP1 != tablename_list.Count + 1)
    {
    excelApp.Worksheets.Add(miss, (Worksheet)excelApp.Worksheets[LOOP2], miss, miss);
    LOOP2
    ++;
    }
    workSheet
    = null;
    }
    while (LOOP1 != tablename_list.Count + 1);
    }
    catch (Exception ex)
    {

    }
    finally
    {
    getFilePath();
    saveExcel();
    resExcelStream();
    }

    }
    /// <summary>
    /// Excel初始化,删除初始工作表,只留一个
    /// </summary>
    /// <param name="_excelApp"></param>
    private void initExcel()
    {
    for (int i = excelApp.Worksheets.Count; i > 1; i--)
    {
    workSheet
    = (Worksheet)excelApp.Worksheets[i];
    workSheet.Delete();
    }
    }
    /// <summary>
    /// 保存excel文件
    /// </summary>
    private void saveExcel()
    {
    workSheet
    = (Worksheet)excelApp.Worksheets[1];

    workSheet.Activate();

    Workbook _workBook
    = excelApp.Workbooks[1];

    _workBook.RefreshAll();

    string _truepath = HttpContext.Current.Server.MapPath(FilePath);

    System.IO.FileInfo _fi
    = new System.IO.FileInfo(_truepath);

    if (!Directory.Exists(_fi.DirectoryName))//判断目录是否存在
    {
    Directory.CreateDirectory(_fi.DirectoryName);
    }

    if (System.IO.File.Exists(_truepath))//判断文件是否存在
    {
    System.IO.File.Delete(_truepath);
    }

    _workBook.SaveAs(_truepath, miss, miss, miss, miss, miss, XlSaveAsAccessMode.xlNoChange, miss, miss, miss, miss, miss);

    _workBook.Close(
    false, miss, miss);

    _workBook
    = null;

    Kill();

    GC.Collect();
    }
    /// <summary>
    /// 杀死EXCEL进程
    /// </summary>
    /// <param name="_eApp"></param>
    private void Kill()
    {
    IntPtr t
    = new IntPtr(excelApp.Hwnd);
    int k = 0;
    GetWindowThreadProcessId(t,
    out k); //得到本进程唯一标志k
    System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(k); //得到对进程k的引用
    p.Kill(); //关闭进程k
    }
    [System.Runtime.InteropServices.DllImport(
    "User32.dll", CharSet = System.Runtime.InteropServices.CharSet.Auto)]
    public static extern int GetWindowThreadProcessId(IntPtr hwnd, out int ID);
    /// <summary>
    /// 输出生成的EXCEL地址
    /// </summary>
    /// <param name="_path">相对路径</param>
    private void resExcelStream()
    {
    System.IO.FileInfo _fi
    = new System.IO.FileInfo(HttpContext.Current.Server.MapPath(FilePath));//FilePath为文件在服务器上的地址
    response.Clear();
    response.Buffer
    = true;
    response.Charset
    = "GBK"; //设置了类型为中文防止乱码的出现
    //response.AppendHeader("Content-Disposition", String.Format("attachment;filename={0}", _path)); //定义输出文件和文件名
    //response.AppendHeader("Content-Length", _fi.Length.ToString());
    response.ContentEncoding = System.Text.Encoding.Default;
    response.ContentType
    = "text/HTML";//设置输出文件类型。因为是ajax接收不了文件流,只能返回文件地址了。
    response.Write(reques t.UrlReferrer.OriginalString.Substring(0, request.UrlReferrer.OriginalString.LastIndexOf("/") + 1) + FilePath);
    response.Flush();
    response.End();
    }
    #endregion

    #region 工作表样式设置及初始化
    /// <summary>
    /// Sheet样式初始化
    /// </summary>
    /// <param name="_type">标志哪一类工作表,如果为1,则是第一张工作表</param>
    /// <param name="_workSheet"></param>
    private void initExcelSheet(int _rowCount, int _colCount)
    {
    switch (TYPE)
    {
    case 1:
    this.setStyleSheet_1(_rowCount, _colCount);
    break;
    default:
    this.setStyleSheet_default(_rowCount, _colCount);
    break;
    }
    }
    /// <summary>
    /// 设置公共样式
    /// </summary>
    /// <param name="_workSheet"></param>
    /// <param name="_rowCount"></param>
    /// <param name="_colCount"></param>
    private void setStyleSheet(int _rowCount, int _colCount)
    {
    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[_rowCount, _colCount]).Columns.AutoFit();//自动适应宽度
    workSheet.get_Range(workSheet.Cells[1, 1], workSheet.Cells[_rowCount, _colCount]).Borders.LineStyle = 1;
    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[_rowCount, _colCount]).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlLeft;
    //_workSheet.get_Range(_workSheet.Cells[1, 1], _workSheet.Cells[_rowCount, 1]).Borders[XlBordersIndex.xlEdgeLeft].Weight = XlBorderWeight.xlThick;//设置左边线加粗
    //_workSheet.get_Range(_workSheet.Cells[1, 1], _workSheet.Cells[1, _colCount]).Borders[XlBordersIndex.xlEdgeTop].Weight = XlBorderWeight.xlThick;//设置上边线加粗
    //_workSheet.get_Range(_workSheet.Cells[1, _colCount], _workSheet.Cells[_rowCount, _colCount]).Borders[XlBordersIndex.xlEdgeRight].Weight = XlBorderWeight.xlThick;//设置右边线加粗
    //_workSheet.get_Range(_workSheet.Cells[_rowCount, 1], _workSheet.Cells[_rowCount, _colCount]).Borders[XlBordersIndex.xlEdgeBottom].Weight = XlBorderWeight.xlThick;//设置下边线加粗
    //double top = 0;//上边距
    //double left = 0;//左边距
    //double right = 0;//右边距
    //double footer = 0; //下边距
    //workSheet.PageSetup.TopMargin = excelApp.InchesToPoints(top / 2.54);//
    //workSheet.PageSetup.BottomMargin = excelApp.InchesToPoints(footer / 2.54);//
    //workSheet.PageSetup.LeftMargin = excelApp.InchesToPoints(left / 2.54);//
    //workSheet.PageSetup.RightMargin = excelApp.InchesToPoints(right / 2.54);//
    workSheet.DisplayAutomaticPageBreaks = true;//显示分页线
    workSheet.PageSetup.CenterFooter = "第 &P 页,共 &N 页";
    workSheet.PageSetup.CenterHorizontally
    = true;//水平居中
    //_workSheet.PageSetup.PrintTitleRows = "$1:$1";//顶端标题行
    workSheet.PageSetup.PaperSize = Microsoft.Office.Interop.Excel.XlPaperSize.xlPaperA4;//A4纸张大小
    workSheet.PageSetup.Orientation = Microsoft.Office.Interop.Excel.XlPageOrientation.xlPortrait;//纸张方向.纵向
    }
    private void setStyleSheet_1(int _rowCount, int _colCount)//首页待打印属于特例,需要单独设置
    {
    setStyleSheet(
    12 + _rowCount, 8);//页面设置
    workSheet.get_Range(workSheet.Cells[1, 1], workSheet.Cells[12 + _rowCount, 8]).Borders.LineStyle = 0;//去掉所有边框
    //实体数据上部表格设置
    workSheet.get_Range(workSheet.Cells[1, 1], workSheet.Cells[1, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    2, 1], workSheet.Cells[2, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    3, 2], workSheet.Cells[3, 4]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    4, 2], workSheet.Cells[4, 4]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    3, 6], workSheet.Cells[3, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    4, 6], workSheet.Cells[4, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    5, 1], workSheet.Cells[5, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    6, 1], workSheet.Cells[6, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    7, 1], workSheet.Cells[7, 8]).MergeCells = true;
    //实体数据部分
    for (int i = 7; i <= _rowCount + 7 + 1; i++)
    {
    workSheet.get_Range(workSheet.Cells[i,
    1], workSheet.Cells[i, 4]).MergeCells = true;
    //workSheet.get_Range(workSheet.Cells[i, 3], workSheet.Cells[i, 4]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[i, 5], workSheet.Cells[i, 8]).MergeCells = true;
    }
    workSheet.get_Range(workSheet.Cells[
    8, 1], workSheet.Cells[7 + _rowCount, 8]).Borders.LineStyle = 1;

    //接收人上下表格设置
    workSheet.get_Range(workSheet.Cells[8 + _rowCount, 1], workSheet.Cells[8 + _rowCount, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    9 + _rowCount, 1], workSheet.Cells[9 + _rowCount, 8]).MergeCells = false;
    workSheet.get_Range(workSheet.Cells[
    9 + _rowCount, 2], workSheet.Cells[9 + _rowCount, 8]).MergeCells = true;
    //workSheet.get_Range(workSheet.Cells[9 + _rowCount, 2], workSheet.Cells[9 + _rowCount, 8]).Borders.LineStyle = 1;
    workSheet.get_Range(workSheet.Cells[10 + _rowCount, 1], workSheet.Cells[10 + _rowCount, 8]).MergeCells = true;
    //审核接收意见部分设置
    workSheet.get_Range(workSheet.Cells[11 + _rowCount, 1], workSheet.Cells[11 + _rowCount, 8]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    12 + _rowCount, 1], workSheet.Cells[12 + _rowCount, 1]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    12 + _rowCount, 2], workSheet.Cells[12 + _rowCount, 4]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    12 + _rowCount, 5], workSheet.Cells[12 + _rowCount, 5]).MergeCells = true;
    workSheet.get_Range(workSheet.Cells[
    12 + _rowCount, 6], workSheet.Cells[12 + _rowCount, 8]).MergeCells = true;

    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[1, 8]).Font.Size = 28;
    workSheet.get_Range(workSheet.Cells[
    5, 1], workSheet.Cells[5, 1]).Font.Size = 16;
    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[1, 8]).Font.Bold = true;
    workSheet.get_Range(workSheet.Cells[
    6, 1], workSheet.Cells[6, 1]).Font.Bold = true;
    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[1, 8]).HorizontalAlignment = Microsoft.Office.Interop.Excel.Constants.xlCenter;
    workSheet.get_Range(workSheet.Cells[
    8, 1], workSheet.Cells[8, 8]).Interior.ColorIndex = 15;

    workSheet.Cells[
    1, 1] = "移交单";
    workSheet.Cells[
    2, 1] = "移交信息:";
    workSheet.Cells[
    3, 1] = "移交单号:";
    workSheet.Cells[
    3, 2] = "_________________________";
    workSheet.Cells[
    3, 5] = "移交日期:";
    workSheet.Cells[
    3, 6] = "_________________________";
    workSheet.Cells[
    4, 1] = "移 交 人:";
    workSheet.Cells[
    4, 2] = "_________________________";
    workSheet.Cells[
    4, 5] = "所属部门:";
    workSheet.Cells[
    4, 6] = "_________________________";
    workSheet.Cells[
    6, 1] = @"目录结构\..\..";
    workSheet.Cells[
    7, 1] = @"移交内容:";
    workSheet.Cells[
    8, 1] = @"分类";
    workSheet.Cells[
    8, 5] = @"数量";
    workSheet.Cells[
    9 + _rowCount, 1] = @"接收人:";
    workSheet.Cells[
    9 + _rowCount, 2] = "_________________________";
    workSheet.Cells[
    11 + _rowCount, 1] = @"意见:";
    workSheet.Cells[
    12 + _rowCount, 1] = @"提交意见";
    workSheet.Cells[
    12 + _rowCount, 2] = "_________________________";
    workSheet.Cells[
    12 + _rowCount, 5] = @"接收意见";
    workSheet.Cells[
    12 + _rowCount, 6] = "_________________________";

    }
    private void setStyleSheet_default(int _rowCount, int _colCount)
    {
    this.setStyleSheet(_rowCount, _colCount);

    workSheet.get_Range(workSheet.Cells[
    1, 1], workSheet.Cells[1, _colCount]).Font.Bold = true;

    workSheet.PageSetup.PrintTitleRows
    = "$1:$1";//设置打印表头
    }
    #endregion

    #region 向工作表添加数据
    /// <summary>
    /// 向工作表添加数据
    /// </summary>
    /// <param name="_type"></param>
    /// <param name="_workSheet"></param>
    /// <param name="_dt"></param>
    private void addDataExcelSheet()
    {
    switch (TYPE)
    {
    case 1:
    this.addDataSheet_1();
    break;
    default:
    this.addDataSheet_default();
    break;
    }
    }

    private void addDataSheet_1()
    {
    workSheet.Name
    = "移交单";

    initExcelSheet(dt.Rows.Count, dt.Columns.Count);
    }

    private void addDataSheet_default()
    {

    int _pagecount = getPageCount(pagesize, dt.Rows.Count);

    System.Data.DataTable _dt
    = null;

    for (int _i = 1; _i <= _pagecount; _i++)//分页打印数据
    {
    workSheet.Name
    = tablename + "-" + _i;//重命名工作表

    _dt
    = new System.Data.DataTable();

    _dt
    = GetPagedTable(pagesize, _i);//获取分页(工作表)数据

    initExcelSheet(_dt.Rows.Count
    + 1, _dt.Columns.Count);//当前工作表初始化

    for (int i = 1; i <= _dt.Rows.Count + 1; i++)//要打印的工作表行数(由于加上表头,所以加1)
    {
    for (int j = 1; j <= _dt.Columns.Count; j++)//待打印数据的列数
    {
    if (i == 1)//设置表头数据
    {
    workSheet.Cells[i, j]
    = diction.ContainsKey(_dt.Columns[j - 1].ColumnName.ToLower()) ? diction[_dt.Columns[j - 1].ColumnName.ToLower()] : "";
    }
    else//其余行
    {
    workSheet.Cells[i, j]
    = _dt.Rows[i - 2][j - 1];
    }
    }
    }

    if (_i != _pagecount)//判断待打印数据的当前页是不是最后一页,不是则在当前工作表后添加一张工作表
    {
    excelApp.Worksheets.Add(miss, (Worksheet)excelApp.Worksheets[LOOP2], miss, miss);

    LOOP2
    ++;

    workSheet
    = (Worksheet)excelApp.Worksheets[LOOP2];

    workSheet.Activate();
    }
    }

    }
    #endregion

    #region GetPagedTable DataTable分页
    /// <summary>
    /// DataTable分页
    /// </summary>
    /// <param name="dt">DataTable</param>
    /// <param name="PageIndex">页索引,注意:从1开始</param>
    /// <param name="PageSize">每页大小</param>
    /// <returns></returns>
    public System.Data.DataTable GetPagedTable(int _PageSize, int _PageIndex)
    {
    if (_PageIndex == 0)

    return dt;

    System.Data.DataTable newdt
    = dt.Copy();

    newdt.Clear();

    int rowbegin = (_PageIndex - 1) * _PageSize;

    int rowend = _PageIndex * _PageSize;

    if (rowbegin >= dt.Rows.Count)

    return newdt;

    if (rowend > dt.Rows.Count)

    rowend
    = dt.Rows.Count;

    for (int i = rowbegin; i <= rowend - 1; i++)
    {
    System.Data.DataRow newdr
    = newdt.NewRow();

    System.Data.DataRow dr
    = dt.Rows[i];

    foreach (System.Data.DataColumn column in dt.Columns)
    {
    newdr[column.ColumnName]
    = dr[column.ColumnName];
    }

    newdt.Rows.Add(newdr);
    }

    return newdt;
    }
    #endregion

    /// <summary>
    ///计算总页数,循环添加数据
    /// </summary>
    /// <param name="_pagesize"></param>
    /// <param name="_recount"></param>
    /// <returns></returns>
    private int getPageCount(int _pagesize, int _recount)
    {
    int _pagecount = 0;

    _pagecount
    = (_recount + _pagesize - 1) / _pagesize;

    if (_pagecount == 0)
    {
    _pagecount
    = 1;
    }

    return _pagecount;
    }
    /// <summary>
    /// 计算工作表数量(此时返回数量不包括将来分页后的数量)
    /// </summary>
    private int getWorkSheetCount()
    {
    int _workSheetCount = tablename_list.Count;

    if (_workSheetCount > excelApp.Sheets.Count)
    {
    return _workSheetCount;
    }
    return _workSheetCount;
    }
    /// <summary>
    /// 添加表头,作废,暂时只用于插入一行改变dt的行数
    /// </summary>
    private void insertTableName()
    {
    System.Data.DataRow _dr
    = dt.NewRow();

    //for (int i = 0; i < _dt.Columns.Count; i++)
    //{
    // _dr[i] = diction.ContainsKey(_dt.Columns[i].ColumnName.ToLower()) ? diction[_dt.Columns[i].ColumnName.ToLower()] : _dt.Columns[i].ColumnName;
    //}

    dt.Rows.InsertAt(_dr,
    0);
    }
    /// <summary>
    /// 检索表信息,取得汉化表头信息
    /// </summary>
    /// <returns>返回select字段</returns>
    private string getColumns(string _tabName)
    {
    string allColumns = dbcmm.f_str0(_tabName).ToLower();
    arrayColName
    = dbcmm.getFieldName0(allColumns, 0);
    arrayShowName
    = dbcmm.getFieldName0(allColumns, 1);
    arrayType
    = dbcmm.getFieldName0(allColumns, 2);
    string _select = dbcmm.getColsName0(arrayColName, arrayType);
    ArryToDict(arrayColName, arrayShowName);
    return _select;
    }
    /// <summary>
    /// 获取ColName和ShowName键值对
    /// </summary>
    /// <param name="_arrayColName">列名</param>
    /// <param name="_arrayShowName">汉化名</param>
    private void ArryToDict(ArrayList _arrayColName, ArrayList _arrayShowName)
    {
    for (int _i = 0; _i < _arrayColName.Count; _i++)
    {
    if (!diction.ContainsKey(_arrayColName[_i].ToString()))
    {
    diction.Add(_arrayColName[_i].ToString(), _arrayShowName[_i].ToString());
    }
    }
    }
    private void getFilePath()
    {
    string _fileName = string.Empty;
    _fileName
    = DateTime.Now.ToString("yyyyMMddhhmmss");
    FilePath
    = DirPath + "/" + _fileName + ".xls";
    }
    public bool IsReusable
    {
    get
    {
    return false;
    }
    }
    }
    }
  • 相关阅读:
    java并发计算的几种基本使用示例
    axios、ajax和xhr前端发送测试
    Spring注解
    Android菜鸟教程笔记
    普通二叉树操作
    MyBatis
    mysql的select语句总结与索引使用
    sys.argv的意义[转]
    硬件小白学习之路(1)稳压芯片LM431
    FPGA小白学习之路(6)串口波特率问题的处理
  • 原文地址:https://www.cnblogs.com/pipizhu/p/1751634.html
Copyright © 2020-2023  润新知