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;
    }
}

模板

结果

相关推荐
qq_466302451 天前
如何在word中添加代码
word
一棵星1 天前
LibreOffice Word 转 PDF 报错 “source file could not be loaded” 完整解决方案
pdf·word
一棵星2 天前
记一次 Word 转 PDF 功能故障排查与修复
pdf·word
拆房老料3 天前
ONLYOFFICE AI Agent 深度解析:在线 Office 正从编辑器走向智能工作平台
人工智能·中间件·编辑器·word·开源软件
186******205314 天前
PDF 转 Word 高效办公实战指南
pdf·word
patrickpdx5 天前
Word批量修改指定字符的字体
word·word2016
asdzx676 天前
使用 Spire.WordJS 在 React 中实现在线 Word 文档编辑
前端·react.js·word
速易达网络6 天前
在线web文本图片绘图系统
word
zavoryn7 天前
Word 图片如何进入 RAG:Apache POI、MinIO 与 URL 映射
word·agent·rag
AI导出鸭PC端7 天前
预览即导出:告别AI文档格式崩塌,网页预览效果1:1落地Word
人工智能·pdf·word·流程图·豆包·ai导出鸭