c#导出数据库信息到excel表格

前言`

最近在帮学弟学妹弄c#课程设计,在此分享一下封装好的模块程序!


一、添加引用NPOL

很多时候,我们在进行数据导出到Excel文件时,在windows平台需要使用到office组件才可以成功导出,也就是说电脑很多时候都必须安装office才可以。今天分享的这个组件,可以在目标主机不安装office的情况下,对Word或Excel进行读写操作。

NPOI的优势:
开源,可以完全免费使用
包含大部分EXCEL的特性
支持处理的文件格式包括(xls/xlsx/docx)
同时支持导入导出
基于.net 2.0/4.0也支持xlsx和docx格式
不需要在服务器或目标主机安装office
它不仅对Excel进行操作,可以对doc,ppt文件进行操作
c#导出数据库信息到excel表格_第1张图片

二、使用步骤

1.引入库

添加引用:

using System.Data.SqlClient;
using System.IO;
using NPOI.SS.UserModel;
using NPOI.HSSF.UserModel;

2.导入模块

代码如下:

      public static void ExportToExcel(System.Data.DataSet ds, string path)
        {
            StreamWriter sw = null;
            try
            {
                long totalCount = ds.Tables[0].Rows.Count;
                sw = new StreamWriter(path, false, Encoding.Unicode);
                StringBuilder sb = new StringBuilder();
                for (int i = 0; i < ds.Tables[0].Columns.Count; i++)
                {
                    sb.Append(ds.Tables[0].Columns[i].ColumnName + "\t");
                }
                sb.Append(Environment.NewLine);
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    for (int j = 0; j < ds.Tables[0].Columns.Count; j++)
                    {
                        sb.Append(ds.Tables[0].Rows[i][j].ToString() + "\t");
                    }
                    sb.Append(Environment.NewLine);
                }
                sw.Write(sb.ToString());
                sw.Flush();
            }
            catch (IOException ioe)
            {
                throw ioe;
            }
            finally
            {
                if (sw != null)
                {
                    sw.Close();
                }
            }
        }

        public static DataSet Query(string SQLString)
        {
            using (SqlConnection connection = new SqlConnection("server=.;database=Hotel;uid=sa;pwd=123456"))
            {
                DataSet ds = new DataSet();
                try
                {
                    connection.Open();
                    SqlDataAdapter command = new SqlDataAdapter(SQLString, connection);
                    command.SelectCommand.CommandTimeout = 1800;
                    command.Fill(ds, "ds");
                }
                catch (System.Data.SqlClient.SqlException ex)
                {
                    if (connection.State == ConnectionState.Open)
                    {
                        connection.Close();
                    }
                    throw new Exception(ex.Message);
                }
                return ds;
            }

只需要把SqlConnection(“server=.;database=Hotel;uid=sa;pwd=123456”)改成自己的数据库信息即可

3.调用模块

			DataSet ds = Query("SELECT * FROM RoomInfo ");
            DataTable dt = ds.Tables[0];

            SaveFileDialog saveFileDialog1 = new SaveFileDialog();
            saveFileDialog1.Title = "保存文件";
            saveFileDialog1.Filter = "Excel 文件(*.xls)|*.xls|Excel 文件(*.xlsx)|*.xlsx|所有文件(*.*)|*.*";
            saveFileDialog1.FileName = "Book.xls";
            if (saveFileDialog1.ShowDialog() == DialogResult.OK)
            {
                string path = saveFileDialog1.FileName;
                ExportToExcel(ds, path);
            }
            }

只需要把DataSet ds = Query("SELECT * FROM RoomInfo ");中的FROM后改成自己的数据库对应的表即可。

总结

以上就是今天要讲的内容,本文仅仅简单介绍了针对单一数据库表导出excel的使用。转载请声明!

你可能感兴趣的:(c#,数据库,c#,database)