从数据集获取信息并放入工作表?

时间:2011-12-09 13:05:12

标签: c# excel export-to-excel

我遇到以下问题:

我给我的方法一个数据集,它应该把信息扔进一个excel文件,这是我想要的格式的模板。我创建的excel文件有一个标题,一些过滤器和类似的东西,我设置我的方法填充标题后的文件等,但问题是,当我这样做,我失去了我所有的格式模板。我正在使用这个课程http://www.codeproject.com/KB/office/biffcsharp.aspx。我不确定,可能是这个类的实现格式很简单,或者它覆盖了我所有的信息。

我的方法看起来像这样,使用上面链接上的类:

public void PopularSheet()
{     
    string filename = "C:\\test"  + System.Web.HttpContext.Current.Session["SYSTEMCLIENTID"].ToString()+ System.Web.HttpContext.Current.Session["SYSTEMUSERTYPEID"].ToString()+ System.Web.HttpContext.Current.Session["CLIENTID"].ToString()+".xls";
    File.Copy("C:\\test.xls", filename);
    FileStream stream = new FileStream(filename, FileMode.OpenOrCreate);
    ExcelWriter writer = new ExcelWriter(stream);
    DataSet ds = GetDataSet();
    writer.BeginWrite();

    int jValue = ds.Tables[0].Columns.Count;
    int iValue = ds.Tables[0].Rows.Count;

    // Passa os dados do dataset para a planilha
    for (int i = 0; i < iValue; i++)
    {
        // Lê todas as colunas da linha i
        for (int j = 0; j < jValue; j++)
        {
            writer.WriteCell(i+2, j, ds.Tables[0].Rows[i][j].ToString());


        }
    }
    writer.EndWrite();
    stream.Close();
}

我也尝试过使用excel库,http://www.carlosag.net/tools/excelxmlwriter/,但我认为为了加载文件(以便我可以将所需的信息插入其中)我需要加载一个xml文件,这是不可能的!

我使用的另一个库在保存时出现问题,我能够编辑工作表,然后当我保存并打开通过代码生成的excel文件时,它会显示为空。

我不能使用任何会迫使我安装excel的东西,这就是我尝试这些替代品的原因。对我能做什么有什么建议吗?

我需要做什么:

  • 将现有Excel文件加载为“模板”
  • 将数据集投入文件
  • 使用我使用模板格式
  • 的信息保存文件

2 个答案:

答案 0 :(得分:1)

有一个名为ClosedXML的库,可用于创建openxml文件。

答案 1 :(得分:0)

快速思考:您可以使用.csv而不是标准的.xls文件吗? 如果是这样,您可以轻松填写​​表格。