создать и записать в файл Excel из C # - PullRequest
2 голосов
/ 11 февраля 2010

Мне нужно создать очень простой файл Excel из кода C #, я увидел следующий вопрос, но перепутал различные варианты. мог бы кто-нибудь указать мне, что лучший и самый простой способ сделать это. Мне нужно, чтобы он работал и на xls, и на xlsx. кроме того, мне нужна формула для раскраски определенного столбца в соответствии с содержанием.

Ответы [ 4 ]

2 голосов
/ 12 февраля 2010

Я использовал Gembox.Spreadsheet и нашел его простым и быстрым. Он поддерживает xls и xlsx и может управлять стилями и формулами ячеек. У них есть бесплатная версия, которая поддерживает только 150 строк на листе и 5 листов на книгу.

2 голосов
/ 11 февраля 2010

SpreadsheetGear for .NET может создавать и записывать книги xls и xlsx из C # и поддерживает условные форматы, которые можно использовать для окрашивания ячеек на основе значений в ячейках.

Вы можете посмотреть живые образцы ASP.NET здесь и загрузить бесплатную пробную версию здесь , если хотите попробовать сами.

Здесь приведен код для создания рабочей книги со случайными числами от 0 до 1000 и условного формата, в котором фон задается синим, а цвет текста - белым для значений> 500. Загрузите полученные книги в Excel (или в приложение SpreadsheetGear for Windows, которое установлено с пробным программным обеспечением SpreadsheetGear) и обратите внимание, что происходит, когда вы нажимаете клавишу F9 для пересчета:

using System;
using SpreadsheetGear;

namespace FormatConditions
{
    class Program
    {
        static void Main(string[] args)
        {
            // Create a new empty workbook.
            IWorkbook workbook = Factory.GetWorkbook();
            IRange cells = workbook.Worksheets[0].Cells["A1:A5"];
            // Place formulas resulting in random numbers between 0 and 1000.
            cells.Formula = "=RAND()*1000";
            cells.NumberFormat = "0";
            // Add a format condition to use blue background and white text for numbers >500.
            IFormatCondition fc = cells.FormatConditions.Add(FormatConditionType.CellValue, FormatConditionOperator.Greater, "500", "");
            fc.Interior.Color = System.Drawing.Color.Navy;
            fc.Font.Color = System.Drawing.Color.White;
            // Save to xls and xlsx.
            workbook.SaveAs(@"c:\tmp\FormatConditions.xls", FileFormat.Excel8);
            workbook.SaveAs(@"c:\tmp\FormatConditions.xlsx", FileFormat.OpenXMLWorkbook);
        }
    }
}

Отказ от ответственности: я владею SpreadsheetGear LLC

0 голосов
/ 11 февраля 2010

Один из вариантов, который я не видел в предыдущей теме, был NPoi - http://npoi.codeplex.com/

Я считаю, что это позволяет вам условно изменить цвет ячейки.

Некоторые вопросы:

  • Какие версии Excel вам нужно поддерживать?
  • Это на стороне клиента или на стороне сервера?
  • Будет ли Excel установлен на клиенте?
0 голосов
/ 11 февраля 2010

Вы создаете этот файл на стороне клиента или сервера? Если это на стороне сервера, вы не должны использовать автоматизацию. Aspose имеет продукт, который, кажется, работает хорошо, я думаю, что он называется Aspose.Cells. Это не бесплатно, хотя.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...