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

模板

结果

相关推荐
小羊没烦恼!7 天前
微服务化的基石——持续集成
java·大数据·word·powerpoint·.net
Am-Chestnuts7 天前
DeepSeek表格复制到Word变竖线错列?用DS随心转对比几种整理方法
人工智能·word·ds随心转
2501_9307077810 天前
使用C#代码为新创建的 Word 文档创建目录
c#·word
SunnyDays101110 天前
Java 拆分 Word 文档教程:按页、分页符和分节符拆分
java·word·分页·拆分
copilot中国版11 天前
Word Copilot|一键提取文档关键信息,告别逐字阅读
word·copilot
天人合一peng13 天前
西北工业大学校外访问系统
word
古少侠13 天前
deepseek转word工具怎么选?DS随心转与4种方案对比实测
人工智能·word·powerpoint
小羊没烦恼!14 天前
Memory 记忆设计讨论:Agent Memory 的安全边界:权限、删除、版本与回执
java·大数据·word·powerpoint·.net
拆房老料14 天前
BaseMetas FileView 1.3.0 发布:大文件更稳,PDF 预览更完整
pdf·word·开源软件·ppt
weixin_4166600714 天前
DeepSeek、豆包生成的表格怎么导出Excel,避免内容挤在一列?
word·豆包·deepseek