首页 > 解决方案 > 如何使用循环将数据插入Excel工作表

问题描述

我正在尝试将一些数据插入到我的 Excel 工作表中。

我的主要代码返回真/假语句,我需要将该语句保存到我的 Registers.xls 文件中。

我如何从同一个excel中读取和写入数据。(抱歉英语不好)

static void Main(string[] args)
        {
            Excel.Application xlApp;
            Excel.Workbook xlWorkbook;
            Excel.Worksheet xlWorksheet;
            Excel.Range range;

            xlApp = new Excel.Application();
            xlWorkbook = xlApp.Workbooks.Open(@"E:\VScode\Registers.xls");
            xlWorksheet = (Excel.Worksheet)xlWorkbook.Worksheets.get_Item(1);

            range = xlWorksheet.UsedRange;
            int cl = range.Rows.Count;
            string result;
            string strRegist;

            for (int i = 1; i <= cl;i++)
            {
                strRegist = (string)(range.Cells[i,3] as Excel.Range).Value2;                
                result = Convert.ToString(Program.CheckRegister(strRegist));
                //Insert result to my sheet
                Console.WriteLine(result);
            }
            xlWorkbook.Close(true, null, null);
            xlApp.Quit();

            Marshal.ReleaseComObject(xlWorksheet);
            Marshal.ReleaseComObject(xlWorkbook);
            Marshal.ReleaseComObject(xlApp);

            Console.WriteLine();
            Console.ReadLine();
        }

标签: c#excel

解决方案


您可以将数据添加到数据表中,然后将其转换为 excelsheet 并将该表添加到所需的 w/e 工作簿中。

using OfficeOpenXml;
using System.Data;
using System.IO;
void SaveTableAsExcelSheet(DataTable dt, string filePath)
{
    var fi = new FileInfo(filePath);
    using (ExcelPackage pck = new ExcelPackage(fi))
    {
        ExcelWorksheet ws = pck.Workbook.Worksheets.Add(dt.TableName);
        ws.Cells["A1"].LoadFromDataTable(dt, true);
        pck.Save();
    }
}

推荐阅读