Экспортировать данные из базы данных в Excel и суммировать столбцы? - PullRequest
0 голосов
/ 02 апреля 2020

У меня возникла небольшая проблема, я могу экспортировать данные из базы данных на лист Excel, но перед сохранением вновь созданного листа Excel я хочу добавить формулу суммирования в указанные столбцы, и я знаю, как сделать это со старым файлом Excel, который уже был создан, но не знаю, как это сделать с новым файлом, который создается в процессе экспорта. Пожалуйста, дайте мне советы о том, как я могу выполнить мою задачу желаний.

С наилучшими пожеланиями.

Это то, что я сделал до сих пор.

using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Excel = Microsoft.Office.Interop.Excel;

namespace ExportToExcel
{
    class Program
    {
        static void Main(string[] args)
        {
            Program obj = new Program();
            obj.ExportToExcelMethod();
        }

        public void ExportToExcelMethod()
        {
            try
            {
                SqlConnection conn;
                string connStr = null;
                string query = null;
                string data = null;
                int i = 0;
                int j = 0;

                Excel.Application xlApp;
                Excel.Workbook xlWorkBook;
                Excel.Worksheet xlWorkSheet;
                object misValue = System.Reflection.Missing.Value;

                xlApp = new Excel.Application();
                xlWorkBook = xlApp.Workbooks.Add(misValue);
                xlWorkSheet = (Excel.Worksheet)xlWorkBook.Worksheets.get_Item(1);

                connStr = @"Data Source=GP_DEV\BCDEMO;Initial Catalog=TestDB;Integrated Security=True";
                conn = new SqlConnection(connStr);
                query = "spGetEmployees";
                SqlDataAdapter adpt = new SqlDataAdapter(query, conn);
                DataSet ds = new DataSet();

                try
                {
                    conn.Open();
                }

                catch (Exception)
                {
                    Console.WriteLine("Database connection unsuccessful.");
                    System.Environment.Exit(0);
                }

                adpt.Fill(ds);

                for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++)
                {
                    for (j = 0; j <= ds.Tables[0].Columns.Count - 1; j++)
                    {
                        data = ds.Tables[0].Rows[i].ItemArray[j].ToString();
                        xlWorkSheet.Cells[i + 1, j + 1] = data;
                    }
                }

                xlWorkBook.SaveAs(@"D:\khubaib\2-4-20\ExportToExcelFile_" + DateTime.Now.ToString("MMddyyyy_HHmmsss") + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);
                xlWorkBook.Close(true, misValue, misValue);
                xlApp.Quit();

            }

            catch (Exception)
            {
                Console.WriteLine("Data export unsuccessful.");
                System.Environment.Exit(0);
            }
        }
    }
}

и вот как я использовал формулу суммирования.

try
            {


                var app = new Excel.Application();
                var workbook = app.Workbooks.Open(template);
                var sheet = workbook.Worksheets[1];
                sheet.Cell("C6").Formula = "SUM(C2:C4)";

                workbook.Save();

            }

            catch (Exception)
            {
                Console.WriteLine("Unable to add the columns.");
                System.Environment.Exit(0);
            } 

1 Ответ

0 голосов
/ 02 апреля 2020

Для добавления суммирования перед сохранением просто добавьте 1 строку перед сохранением книги, как показано ниже

// Add this line
xlWorkSheet.Cell("C6").Formula = "SUM(C2:C4)";

xlWorkBook.SaveAs(@"D:\khubaib\2-4-20\ExportToExcelFile_" + DateTime.Now.ToString("MMddyyyy_HHmmsss") + ".xls", Excel.XlFileFormat.xlWorkbookNormal, misValue, misValue, misValue, misValue, Excel.XlSaveAsAccessMode.xlExclusive, misValue, misValue, misValue, misValue, misValue);

Чтобы добавить формулу или текст, используйте

xlWorkSheet.Cell("Desire cell name").Formula = "Formula here"

или

xlWorkSheet.Cell("Desire cell name").Value = "Text here"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...