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

模板

结果

相关推荐
揭老师高效办公32 分钟前
想让图片可以在Word和WPS文档中自由移动?修改文字环绕
word·wps
揭老师高效办公1 天前
Word如何一次性合并多个文档
word·wps文字
元直数字电路验证3 天前
学术论文 Word 样式规范
word·科学论文写作·论文格式·实验报告格式
航哥的女人3 天前
在Word中,如何引入λ γ δ α ε
word
Java-云海3 天前
使用Python实现自动编写Word全自动化系统
运维·python·自动化·word
揭老师高效办公3 天前
Word和WPS文字中的自动编号和文字间距过大怎么办?
word·wps·wps文字
程序猿老罗3 天前
使用Python轻松实现Word到PDF的批量转换
python·pdf·word
揭老师高效办公3 天前
Word和WPS文字中的题注没有更新?全选按F9刷新
word·wps文字
玩泥巴的4 天前
.NET操作Word实现智能文档处理 - 内容查找替换与书签操作
word·.net·二次开发·office·com互操作
热爱生活的五柒5 天前
Zotero + Word 插件管理参考文献的引用
word·zotero·ieee