c# - 将数据从数据库导出到 Excel 并对列求和?
问题描述
我遇到了一个小问题,我可以将数据库中的数据导出到 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 行,如下所示
// 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"
推荐阅读
- python - Keras 中 Conv1D 的行为(张量的维度)
- shared-libraries - 如何在运行路径标志中针对 $ORIGIN 指定共享库的目录?
- qt - 在Qt的一行中水平居中一个项目
- string - 是否有一些容易在 Lua 文件中找到所有字符串文字的方法?
- gremlin - 如何计算gremlin中的传入顶点?
- javascript - 如何获取对象内嵌套数组的值?
- talend - 将 1 个字符串拆分为多行
- python - 查询 Django - 返回一个字段不为空的对象
- go - 从 env 文件 golang 读取 apm env 变量
- python - 结合无损脚本导入