簡體   English   中英

如何從C#保存到Excel?

[英]How to save from C# to Excel?

BOWorkerDetail oBOWorkerDetail = new BOWorkerDetail();
            WorkerDetails oWorkerDetails = new WorkerDetails();
            oWorkerDetails = oBOWorkerDetail.Gets();

oWorkerdetails是所有工人的集合。 我需要將此值保存在Excel中。 怎么做 ? 有人可以幫忙嗎?i在C#窗口平台vs05上工作。

您應該看一下http://www.connectionstrings.com/excel ,在那里您可以找到一些與ODBC引擎一起使用的連接字符串。 一個例子是:

OdbcConnection connection = new OdbcConnection(@"Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=" + xlsFilePath + "; ReadOnly=False; DefaultDir=" + xlsDir + ";");

(您應該在工作站上安裝Microsoft Excel)

那么您可以像這樣創建一個IDbCommand:IDbCommand command = connection.CreateCommand();

您可以像使用任何sql命令一樣使用此命令:為DataTable中的每個DataRow使用“ CREATE TABLE”,“ INSET INTO”。

希望這可以幫助...

我的建議是使用本機庫,避免使用Interop。 看看Aspose.Cells

如果沒有在運行該代碼的計算機上安裝Excel,則可以將其導出為XML或CSV(逗號分隔值)文件,然后在以后將其導入Excel。

如果使用XML,則也可以導出模式。

正如BarneyHDog在注釋中指出的那樣,Excel可以根據其認為的數據類型對數據進行處理。 因此,如果沿着這條路線走,請仔細檢查輸出是否正確處理。

這是一個使用Visual Studio Tools for Office 2008和Office Excel Interop將List>寫入新Excel文件的示例:

using System;
using System.Collections.Generic;
using System.Reflection;

using Microsoft.Office.Interop.Excel;

namespace Project1
{
  public class ExportExcel
  {
    public void Export(string fileName, List<List<string>> data)
    {
      _Application excel = null;
      _Workbook wb = null;
      try
      {
        excel = new ApplicationClass { Visible = false }; // new excel application (not visible)
        wb = excel.Workbooks.Add(Missing.Value); // new excel file

        var sh = ((_Worksheet)wb.ActiveSheet); // current sheet
        for (var i = 0; i < data.Count; i++)
        {
          var listMaster = data[i];
          for (var j = 0; j < listMaster.Count; j++)
          {
            sh.get_Range(sh.Cells[j + 1, i + 1], sh.Cells[j + 1, i + 1]).Value2 = listMaster[j];
            // get_Range(start, end) where start, end is in R1C1 notation
          }
        }
      }
      finally
      {
        if (wb != null)
        {
          wb.SaveAs(fileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, XlSaveAsAccessMode.xlExclusive, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);
        }
        if (excel != null)
        {
          excel.Quit();
        }
        GC.Collect();
      }
    }
  }
}

VSTO要求在客戶端計算機上安裝Excel

一種非常簡單的方法是使用filehelpers庫

http://filehelpers.sourceforge.net/

那里有很多例子。

該庫確實可靠,我已經使用了很多次。 希望能幫助到你

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM