C# 将OracleDataReader写入excel C.net

C# 将OracleDataReader写入excel C.net,c#,.net,excel,oracle,C#,.net,Excel,Oracle,我需要帮助。如何将表格中的每一行写入Excel文件 问题1:如何从OracleDataReader获取每个单元格或每行的值 问题2:表中的列数可能会有所不同。我应该读取每个单元格并将其写入Excel还是按行 代码: 所以我想出来了。这是我现在使用的代码。我用数据库中的不同表进行了尝试 问:有人知道如何从excel动态读取数据并将数据加载到数据库中吗?我的意思是,动态构造INSERT命令 [WebMethod] public string dictToExcel(string di

我需要帮助。如何将表格中的每一行写入Excel文件

问题1:如何从OracleDataReader获取每个单元格或每行的值

问题2:表中的列数可能会有所不同。我应该读取每个单元格并将其写入Excel还是按行

代码:


所以我想出来了。这是我现在使用的代码。我用数据库中的不同表进行了尝试

问:有人知道如何从excel动态读取数据并将数据加载到数据库中吗?我的意思是,动态构造INSERT命令

    [WebMethod]
    public string dictToExcel(string dict_name)
    {
        string connectionString = ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
        OracleConnection connection = new OracleConnection(connectionString);

        try
        {
            connection.Open();

            OracleCommand cmd = new OracleCommand();
            cmd.Connection = connection;
            cmd.CommandText = "SELECT * from " + dict_name;
            cmd.CommandType = CommandType.Text;

            OracleDataReader dataReader = cmd.ExecuteReader();

            IWorkbook workbook;
            workbook = new XSSFWorkbook();

            ISheet sheet = workbook.CreateSheet("Sheet 1");

            int b = 0;
            while (dataReader.Read())
            {
                int n = 0;
                IRow row = sheet.CreateRow(b);
                while (n < dataReader.FieldCount)
                {
                    ICell cell = row.CreateCell(n);

                    String columnName = dataReader.GetValue(n).ToString();
                    cell.SetCellValue(columnName);

                    n++;
                }

                b++;
            }

是:dict_name应该是表的名称吗?这不能工作,因为参数不能用于表示表或字段的属性names@steve参数将通过http响应来自外部。@marc_感谢您的编辑,为什么不使用MS Query?它内置于Excel@Hambone我是用NPOI做的。
    [WebMethod]
    public string dictToExcel(string dict_name)
    {
        string connectionString = ConfigurationManager.ConnectionStrings["OracleConnection"].ConnectionString;
        OracleConnection connection = new OracleConnection(connectionString);

        try
        {
            connection.Open();

            OracleCommand cmd = new OracleCommand();
            cmd.Connection = connection;
            cmd.CommandText = "SELECT * from " + dict_name;
            cmd.CommandType = CommandType.Text;

            OracleDataReader dataReader = cmd.ExecuteReader();

            IWorkbook workbook;
            workbook = new XSSFWorkbook();

            ISheet sheet = workbook.CreateSheet("Sheet 1");

            int b = 0;
            while (dataReader.Read())
            {
                int n = 0;
                IRow row = sheet.CreateRow(b);
                while (n < dataReader.FieldCount)
                {
                    ICell cell = row.CreateCell(n);

                    String columnName = dataReader.GetValue(n).ToString();
                    cell.SetCellValue(columnName);

                    n++;
                }

                b++;
            }