标签: closedxml

ClosedXML - 添加新行而不覆盖数据(第一行)

我试图在填写我的 excel 文档之前添加一个空行。

using (DataTable dt = new DataTable())
{
    sda.Fill(dt);

    using (XLWorkbook wb = new XLWorkbook())
    {
        var ws = wb.Worksheets.Add(dt, "Report");
        var listOfStrings = new List<String>();
        ws.Cell(1, 6).Value = "Service";
        ws.Cell(1, 15).Value = "Invoice";

        ws.Range("A1:L1").Style.Fill.BackgroundColor = XLColor.DarkBlue;
        ws.Range("M1:Q1").Style.Fill.BackgroundColor = XLColor.DarkCandyAppleRed;
        ws.Range("M2:Q2").Style.Fill.BackgroundColor = XLColor.Red;

        Response.Clear();
        Response.Buffer = true;
        Response.Charset = "";
        Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
        Response.AddHeader("content-disposition", "attachment;filename=Report.xlsx");

        using (MemoryStream MyMemoryStream = new MemoryStream())
        {
            wb.SaveAs(MyMemoryStream);
            MyMemoryStream.WriteTo(Response.OutputStream);
            Response.Flush();
            Response.End();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我只需要将第一行留空,然后用我的数据填充文档。但我一直在覆盖文档。

c# closedxml

4
推荐指数
1
解决办法
1万
查看次数

System.drawing.common 'gdip' 的类型初始值设定项引发异常

这是我将图片添加到工作表的代码。我从数据库中以字节的形式获取图片。.Net Core 框架版本为 2.2.104。这是一个 API 项目。在我的语言环境中,代码运行良好。我使用 ClosedXML 组件 0.95.4 版本如下。

        [HttpPost("GetTowel")]
        public IActionResult GetTowel()
        {
            string contentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
            string fileName = "Towel Quotation.xlsx";
            try
            {
                using (var workbook = new XLWorkbook())
                {
                    IXLWorksheet worksheet = workbook.Worksheets.Add("Towel Quotation");
                    
                    byte[] bytes = _fileService.Get(159).FileInBytes;
                    System.IO.Stream x = new System.IO.MemoryStream(bytes);

                    //the exception is throwed at this line:
                    **var image = worksheet.AddPicture(x).MoveTo(worksheet.Cell("P1")).Scale(1.0);**

                    using (var stream = new MemoryStream())
                    {
                        workbook.SaveAs(stream);
                        var content = stream.ToArray();
                        return File(content, contentType, fileName);
                    }
                }
            }
            catch (Exception ex) …
Run Code Online (Sandbox Code Playgroud)

c# worksheet closedxml kubernetes .net-core

4
推荐指数
5
解决办法
1310
查看次数

封闭式XML大纲

我正在尝试使用 OpenXML 在导出的 Excel 工作簿中创建一个组。

我的源数据表如下所示:

Row     State   Product Sales
1       NY      A       100
2       NY      A       200
3       NY      B       300
4       CA      A       100
5       CA      A       200
6       CA      B       300
Run Code Online (Sandbox Code Playgroud)

我想按州创建一个大纲,然后按产品创建每个组的小计

我试过

 ws.Outline.SummaryVLocation = XLOutlineSummaryVLocation.Top;
 ws.Rows(1, 3).Group(); // Create an outline (level 2) for rows 1-4
 ws.Rows(4, 6).Group();
Run Code Online (Sandbox Code Playgroud)

但它没有给我我想要的东西,而且我没有看到添加小计的选项。

我怎样才能实现这个目标?

closedxml

3
推荐指数
1
解决办法
6649
查看次数

如何使用 C# 和 ClosedXML 将新行追加到 Excel 文件?

我应该向现有 Excel 文件追加一个新行。任务由两部分组成:

  1. 添加到不存在的文件(效果很好)。
  2. 添加到现有文件(不起作用:它不会创建新记录,仅显示“else”正文中的旧记录)。

这是我的代码:

private static void ExportToEXCEL(DataTable dt, string paymentStoryPath)
{
    if (File.Exists(paymentStoryPath))
    {
        XLWorkbook currentWorkbook = new XLWorkbook(paymentStoryPath);
        IXLWorksheet currentWsh = currentWorkbook.Worksheet("Payment history");
        //IXLCell cellForNewData = index.Cell(index.LastRowUsed().RowNumber() + 1, 1);
        IXLRow rowForNewData = currentWsh.Row(currentWsh.LastRowUsed().RowNumber()+1);
        rowForNewData.InsertRowsBelow(1);
        rowForNewData.Value = dt;
        currentWorkbook.Save();
    }
    else
    {
        //not exist
        XLWorkbook wb = new XLWorkbook();
        wb.Worksheets.Add(dt, "Payment history");
        wb.SaveAs(paymentStoryPath);
    }
}
Run Code Online (Sandbox Code Playgroud)

我的代码出了什么问题,我应该更改什么?

c# excel closedxml

3
推荐指数
1
解决办法
2万
查看次数

从 Excel 文件中读取的 ClosedXML

我有一个excel文件。我只需要一个单元格值。我很难找到这方面的文档。在将日期写入 excel 文件之前,我已经完成了 ClosedXML,但没有在其中读取数据。

      const string fileName = 
                    @"C:\Folder1\Form.xlsx";

        // Retrieve the value in cell A1.
         var workbook1 = new XLWorkbook(fileName);
         var ws1 = workbook1.Worksheet(1);
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

closedxml

3
推荐指数
1
解决办法
4523
查看次数

如何使用 ClosedXML (C#) 在 Excel 中处理打开的工作簿?

我正在使用 ClosedXML 为 Excel 中的人员制作报告。我有 3 个问题需要帮助。

1)我这里有这段代码,这样我就可以访问工作簿中的数据。除非有人打开该工作簿,否则它可以正常工作。如果可能的话,我不在乎它是否打开只读副本,因为我所做的只是从中访问信息。

var WorkbookCopyFrom = new XLWorkbook(WorksheetToCopy);
Run Code Online (Sandbox Code Playgroud)

即使有人打开了,我怎样才能打开它?

2)在我之前的公司,我使用Office Interop Nuget包来做类似的事情。在该包中,我能够在使用以下代码处理 Excel 文件时显示该文件:

excelApp.Visible = true;
Run Code Online (Sandbox Code Playgroud)

ClosedXML 中有类似的东西吗?

c# excel office-interop closedxml

3
推荐指数
1
解决办法
5338
查看次数

ClosedXml C# 显示公式输出数字

我正在使用 closedxml 从 .NET c# 应用程序生成和下载 xlsx 文件

有没有办法显示公式输出数字,而无需用户在下载并在 excel 中打开文件后单击“启用编辑”?

c# closedxml

3
推荐指数
1
解决办法
1340
查看次数

如何使用 ClosedXML 从 Excel 文件读取单元格值

        string TablePath = Storage.ProjectPath + "\\Tables\\";
        string ObjectRepPath = TablePath + "ObjectRepository.xlsx";

        string locType = " ";
        string locParm = " ";

        var workbook  = new XLWorkbook(ObjectRepPath);
        var ws1       = workbook.Worksheet(1).RangeUsed().RowsUsed().Skip(1);
        var totalRows = ws1.Count();
        var row       = ws1.Row;

        for (int rCnt = 1; rCnt <= totalRows; rCnt++)
        {
            var objPage    = ws1.Cell(rCnt, 0).Value;
            var objElement = ws1.Cell(rCnt, 1).Value;


            if (objPage == page && objElement == element)
            {
                locType = ws1.Cell(rCnt, 2);
                locParm = ws1.Cell(rCnt, 3);
            }
        }
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用 ClosedXML …

c# excel closedxml

3
推荐指数
1
解决办法
2万
查看次数

使用 closedXML 和 C# 将一系列单元格值放入列表中

我正在使用 closedXMl 将数据从 excel 检索到我的 C# WPF 中。我正在使用该Range()功能手动选择数据检索范围。

如何获取单元格中的值并将它们存储到列表中?有没有办法解决这个问题?下面是我创建的用于检索和存储 excel 数据的方法示例。

public List<double> TableList = new List<double>();

public void test()
    {
        using (var excelWorkbook = new XLWorkbook(@"D:\OneDrive ExcelFile.xlsx"))
        {
            var Ws = excelWorkbook.Worksheet("Sheet1");
            var TableList = Ws.Range("O18:O31");
        }

        for (int i = 0; i < TableList.Count; i++)
        {
            Console.WriteLine("{0}", TableList[i]);
        }
    }
Run Code Online (Sandbox Code Playgroud)

我得到的输出是 Sheet1!O18:O31

c# list closedxml

3
推荐指数
1
解决办法
3379
查看次数

ClosedXML 如何设置整个工作簿的单元格宽度?

我正在使用 closeXml 将数据导出到 Excel。但我的列需要根据内容进行调整,因此我尝试手动指定列宽度:

var ws = workbook.Worksheets.Add("Column Settings");

col.Width = 50;
Run Code Online (Sandbox Code Playgroud)

不适合我。我也尝试过:

Columns().AdjustToContents();
Run Code Online (Sandbox Code Playgroud)

但也没有结果。因此,寻找一种解决方案来预先设置整个工作表或工作簿中的单元格宽度。这是我的代码:

    //variables 
    XLWorkbook workbook = new XLWorkbook();
    var wsDep = workbook.Worksheets.Add("MBR");
    wsDep.Columns().AdjustToContents();
    DataTable dt = new DataTable() { TableName = "MBR" };
    DataSet ds = new DataSet();
    TagRepo tr = new TagRepo();
    List<string> tags = new List<string>();
    tags.Add("TimeStamp");

    //list min,max,avg.
    foreach (var item in tr.getAllTagNames())
    { 
        tags.Add(item.Trim()+"_Min");
        tags.Add(item.Trim() + "_Max");
        tags.Add(item.Trim() + "_Avg");
    }
    //input data
    int l = tags.Count();
    //Colum names
    string[] columns = new …
Run Code Online (Sandbox Code Playgroud)

c# excel closedxml

3
推荐指数
1
解决办法
5513
查看次数

标签 统计

closedxml ×10

c# ×8

excel ×4

.net-core ×1

kubernetes ×1

list ×1

office-interop ×1

worksheet ×1