sqlsugar查看表结构并导出word文档

前提

SqlSugar 5.1.4

MiniWord 0.9.2

使用

cs 复制代码
using MiniSoftware;
using SqlSugar;

namespace ConsoleApp5
{
    internal class Program
    {
        /// <summary>
        /// 导出数据库表结构和字段信息
        /// https://www.donet5.com/Home/Doc?typeId=1203
        /// </summary>
        /// <param name="args"></param>
        static void Main(string[] args)
        {
            var connectionString = "Server=127.0.0.1;uid=sa;pwd=12345678;Database=数据库名;MultipleActiveResultSets=true;pooling=true;min pool size=5;max pool size=32767;connect timeout=20;Encrypt=True;TrustServerCertificate=True;";
            var db = new SqlSugarClient(new ConnectionConfig()
            {
                DbType = DbType.SqlServer,
                ConnectionString = connectionString,
                IsAutoCloseConnection = true
            });

            // 获取所有表名及备注
            var tables = db.DbMaintenance.GetTableInfoList(false);
            Console.WriteLine($"总共有{tables.Count}张表");
            var totalData = new Dictionary<string, object>();
            var tableDataList = new List<TableModel>();
            int index = 0;
            foreach (var table in tables)
            {
                //Console.WriteLine($"表名:{table.Name},备注:{table.Description}");
                var tableData = new TableModel()
                {
                    Name = table.Name,
                    Description = table.Description
                };
                var columns = db.DbMaintenance.GetColumnInfosByTableName(table.Name, false);
                index = 0;
                foreach (var column in columns)
                {
                    index += 1;
                    var tableColumnData = new ColumnModel()
                    {
                        Idx = index,
                        CName = column.DbColumnName,
                        CDesc = column.ColumnDescription,
                        CType = column.DataType
                    };
                    tableData.Columns.Add(tableColumnData);
                    //Console.WriteLine($"\t字段名:{column.DbColumnName},类型:{column.DataType},备注:{column.ColumnDescription}");
                }
                tableDataList.Add(tableData);
            }
            totalData.Add("tables", tableDataList);
            Console.WriteLine("数据查询完毕");
            var basePath = AppDomain.CurrentDomain.BaseDirectory;
            var resultName = DateTime.Now.ToString("yyyy_MM_dd_HH_mm_ss") + ".docx";
            var outputPath = Path.Combine(basePath, resultName);
            var intputPath = Path.Combine(basePath, "009.docx");
            MiniWord.SaveAsByTemplate(outputPath, intputPath, totalData);
            Console.WriteLine("完成");
            Console.ReadKey();
        }
    }

    public class TableModel
    {
        /// <summary>
        /// 表名称
        /// </summary>
        public string Name { get; set; } = string.Empty;

        /// <summary>
        /// 表描述
        /// </summary>
        public string Description { get; set; } = string.Empty;

        /// <summary>
        /// 表中的列字段
        /// </summary>
        public List<ColumnModel> Columns { get; set; } = new List<ColumnModel>();
    }

    public class ColumnModel
    {
        /// <summary>
        /// 索引
        /// </summary>
        public int Idx { get; set; } = 0;

        /// <summary>
        /// 列名称
        /// </summary>
        public string CName { get; set; } = string.Empty;

        /// <summary>
        /// 列名称
        /// </summary>
        public string CDesc { get; set; } = string.Empty;

        /// <summary>
        /// 列类型
        /// </summary>
        public string CType { get; set; } = string.Empty;
    }
}

模板

结果

相关推荐
laoban-yu2 小时前
Word与PDF文档互转
pdf·word·文档转换
古少侠7 小时前
用 DS随心转 把 AI 给的表格整理成排版正常、能改的 Word
word
2601_962295337 小时前
Python自动化批量文档生成工具:Word与Excel的结合应用
python·自动化·word·excel·文档生成
古少侠2 天前
用 DS随心转 把 AI 画的 Mermaid 流程图转成 Word 里的高清图
开发语言·c#·word
开开心心_Every3 天前
实现鼠标键盘动作录制与重复播放的工具
微信·jupyter·pycharm·pdf·计算机外设·word·excel
ZnS_oscar3 天前
不用下载字体,获得仿宋字体
windows·word
SunnyDays10113 天前
如何使用 Python 从 Word 文档中提取图片
python·word
Felicia-侧听3 天前
PDF怎么转换成Word?3种方法实现PDF转可编辑Word
pdf·word·pdf转word
乘风归趣3 天前
spire.doc.free将word中占位符替换为pdf文件,以及合并PDF
pdf·word
几层山下4 天前
WPS的word文档转pdf java实现不乱格式生成-已解决
java·pdf·word·wps