ECS/mod/ExcelExport.cs

(开头部分) 5KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using System;
using System.Collections.Generic;
using System.Data;
using System.Reflection;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;

public class ExcelExport
{
    public string ToExcel(DataGridView dgv, DataSet ds, string folderpath, string FirstRowName)
    {
        if (dgv.Rows.Count == 0)
            return "无数据可导出,请先查询出数据,再导出!";
        DataTable dt = GetData(dgv, ds.Tables[0], FirstRowName);
        return Export(dt, folderpath);
    }

    private DataTable GetData(DataGridView dgv, DataTable olddt, string FirstRowName)
    {
        System.Data.DataTable dt = new System.Data.DataTable();
        dt.TableName = FirstRowName;
        for (int i = 0; i < dgv.Columns.Count; i++)
        {
            DataColumn dc = new DataColumn();
            string controlID = dgv.Columns[i].Name;
            //dc.ColumnName = controlID.Substring(3, controlID.Length - 3);
            dc.ColumnName = controlID;
            dc.Caption = dgv.Columns[i].HeaderText.ToString();
            dc.DataType = typeof(System.String);
            dt.Columns.Add(dc);
        }
        foreach (DataRow dr in olddt.Rows)
        {
            DataRow dtdr = dt.NewRow();
            for (int i = 0; i < dt.Columns.Count; i++)
            {
                dtdr[i] = dr[dt.Columns[i].ColumnName];
            }
            dt.Rows.Add(dtdr);
        }
        return dt;
    }

    public string Export(DataTable dt, string folderpath)
    {
        string result = "导出失败!";  //默认返回值

        int seriesIndex = 0;
        int rowIndex = 0;
        int seriesCount = dt.Columns.Count;
        int rowCount = dt.Rows.Count;

        if (rowCount == 0)
        {
            result = "没有可导出的数据!";
        }

        Microsoft.Office.Interop.Excel.Application xlApp = new Microsoft.Office.Interop.Excel.ApplicationClass();

后面还有 83 行代码,购买后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 算力/个。 规则说明

AI 解读 AI

登录后可用,每次 10 算力,解读结果公开显示在下面。

还没有人解读过这个文件。