Exemple #1
0
        public void WriteCellTest()
        {
            using (var stream = new MemoryStream()) {
                using (var excel = new ExcelWriter(stream)) {
                    // Set up our row and column formats first
                    excel.SetRowFormat(1, fontStyle: FontStyle.Bold, fontSize: 16);
                    excel.SetColumnFormat(7, fontStyle: FontStyle.Italic, fontSize: 24);

                    var date = DateTime.Parse("2017-10-16 03:05 PM");
                    var guid = new Guid("bfb9c599-bc9e-4f97-ae59-25f2ca09cfdf");
                    excel.WriteCell(0, 0, "one");
                    excel.WriteCell(0, 1, "one, two", fontStyle: FontStyle.Bold);
                    excel.WriteCell(0, 2, "one \"two\" three", fontSize: 18);
                    excel.WriteCell(0, 3, " one ", fontName: "Times New Roman");
                    excel.WriteCell(0, 4, date);
                    excel.WriteCell(0, 5, date, dateFormat: "M/d/yyyy h:mm:ss AM/PM");
                    excel.WriteCell(0, 6, date, dateFormat: "M/d/yyyy");
                    excel.WriteCell(0, 7, date, dateFormat: "dddd, MMMM d, yyyy", fontStyle: FontStyle.Bold, horizontalAlign: ExcelAlignHorizontal.Right, verticalAlign: ExcelAlignVertical.Bottom);
                    excel.WriteCell(0, 8, (byte)1);
                    excel.WriteCell(0, 9, (short)2);
                    excel.WriteCell(0, 10, 3);
                    excel.WriteCell(0, 11, "=1+2");

                    excel.WriteCell(1, 0, (long)4);
                    excel.WriteCell(1, 1, (float)5);
                    excel.WriteCell(1, 2, (double)6);
                    excel.WriteCell(1, 3, (decimal)123.456, "$#,##0.00;($#,##0.00)");
                    excel.WriteCell(1, 4, (decimal) - 123.456, "$#,##0.00;($#,##0.00)");
                    excel.WriteCell(1, 5, guid);
                    excel.WriteCell(1, 6, true);
                    excel.WriteCell(1, 7, false);
                    excel.WriteCell(1, 8, (string)null);
                    excel.WriteCell(1, 9, new TimeSpan(1, 2, 3));
                    excel.WriteCell(1, 10, "=2*3");

                    // Auto size the columns
                    excel.AdjustColumnsToContent(0, 10000);

                    // Override some column and row sizes
                    excel.SetRowHeight(1, 600);
                    excel.SetColumnWidth(1, 500);
                    excel.SetColumnWidth(11, 700);

                    // Change to third sheet and write a cell
                    excel.ChangeSheet(2);
                    excel.WriteCell(0, 0, "third sheet");

                    excel.Close();

#if WRITE_TEST_FILE
                    using (var fileStream = File.Create("C:\\temp\\test.xlsx")) {
                        stream.Seek(0, SeekOrigin.Begin);
                        stream.CopyTo(fileStream);
                    }
#endif

                    stream.Position = 0;
                    using (var book = new XLWorkbook(stream)) {
                        var sheet = book.Worksheets.Worksheet(1);

                        // Verify row and column styles
                        Assert.AreEqual(true, sheet.Row(2).Style.Font.Bold);
                        Assert.AreEqual(16.0, sheet.Row(2).Style.Font.FontSize);
                        Assert.AreEqual(true, sheet.Column(8).Style.Font.Italic);
                        Assert.AreEqual(24.0, sheet.Column(8).Style.Font.FontSize);

                        // Check some automatically sized column widths
                        Assert.AreEqual(23.71, sheet.Column(3).Width);
                        Assert.AreEqual(11.209999999999999, sheet.Column(4).Width);

                        // Verify the overridden row and column sizes
                        Assert.AreEqual(600, sheet.Row(2).Height);
                        Assert.AreEqual(8.8599999999999994, sheet.Column(2).Width);
                        Assert.AreEqual(2.1899999999999999, sheet.Column(12).Width);

                        // Verify first row
                        Assert.AreEqual("one", sheet.Cell(1, 1).Value);
                        Assert.AreEqual("", sheet.Cell(1, 1).Style.NumberFormat.Format);
                        Assert.AreEqual("", sheet.Cell(1, 1).Style.DateFormat.Format);
                        Assert.AreEqual("one, two", sheet.Cell(1, 2).Value);
                        Assert.AreEqual(true, sheet.Cell(1, 2).Style.Font.Bold);
                        Assert.AreEqual("one \"two\" three", sheet.Cell(1, 3).Value);
                        Assert.AreEqual(18.0, sheet.Cell(1, 3).Style.Font.FontSize);
                        Assert.AreEqual(" one ", sheet.Cell(1, 4).Value);
                        Assert.AreEqual("Times New Roman", sheet.Cell(1, 4).Style.Font.FontName);
                        Assert.AreEqual(date, sheet.Cell(1, 5).Value);
                        Assert.AreEqual("10/16/2017 15:05", sheet.Cell(1, 5).GetFormattedString());
                        Assert.AreEqual("", sheet.Cell(1, 5).Style.DateFormat.Format);
                        Assert.AreEqual(date, sheet.Cell(1, 6).Value);
                        Assert.AreEqual("10/16/2017 3:05:00 PM", sheet.Cell(1, 6).GetFormattedString());
                        Assert.AreEqual("M/d/yyyy h:mm:ss AM/PM", sheet.Cell(1, 6).Style.DateFormat.Format);
                        Assert.AreEqual(date, sheet.Cell(1, 7).Value);
                        Assert.AreEqual("10/16/2017", sheet.Cell(1, 7).GetFormattedString());
                        Assert.AreEqual("M/d/yyyy", sheet.Cell(1, 7).Style.DateFormat.Format);
                        Assert.AreEqual(XLAlignmentHorizontalValues.Right, sheet.Cell(1, 7).Style.Alignment.Horizontal = XLAlignmentHorizontalValues.Right);
                        Assert.AreEqual(XLAlignmentVerticalValues.Bottom, sheet.Cell(1, 7).Style.Alignment.Vertical    = XLAlignmentVerticalValues.Bottom);
                        Assert.AreEqual(date, sheet.Cell(1, 8).Value);
                        Assert.AreEqual("Monday, October 16, 2017", sheet.Cell(1, 8).GetFormattedString());
                        Assert.AreEqual("dddd, MMMM d, yyyy", sheet.Cell(1, 8).Style.DateFormat.Format);
                        Assert.AreEqual(true, sheet.Cell(1, 8).Style.Font.Bold);
                        Assert.AreEqual((double)1, sheet.Cell(1, 9).Value);
                        Assert.AreEqual("1", sheet.Cell(1, 9).GetFormattedString());
                        Assert.AreEqual((double)2, sheet.Cell(1, 10).Value);
                        Assert.AreEqual("2", sheet.Cell(1, 10).GetFormattedString());
                        Assert.AreEqual((double)3, sheet.Cell(1, 11).Value);
                        Assert.AreEqual("3", sheet.Cell(1, 11).GetFormattedString());
                        Assert.AreEqual("1+2", sheet.Cell(1, 12).FormulaA1);
                        Assert.AreEqual((double)3, sheet.Cell(1, 12).Value);
                        Assert.AreEqual("3", sheet.Cell(1, 12).GetFormattedString());

                        // Verify second row
                        Assert.AreEqual((double)4, sheet.Cell(2, 1).Value);
                        Assert.AreEqual("4", sheet.Cell(2, 1).GetFormattedString());
                        Assert.AreEqual("", sheet.Cell(2, 1).Style.NumberFormat.Format);
                        Assert.AreEqual((double)5, sheet.Cell(2, 2).Value);
                        Assert.AreEqual("5", sheet.Cell(2, 2).GetFormattedString());
                        Assert.AreEqual((double)6, sheet.Cell(2, 3).Value);
                        Assert.AreEqual("6", sheet.Cell(2, 3).GetFormattedString());
                        Assert.AreEqual(123.456, sheet.Cell(2, 4).Value);
                        Assert.AreEqual("$123.46", sheet.Cell(2, 4).GetFormattedString());
                        Assert.AreEqual("$#,##0.00;($#,##0.00)", sheet.Cell(2, 4).Style.NumberFormat.Format);
                        Assert.AreEqual(-123.456, sheet.Cell(2, 5).Value);
                        Assert.AreEqual("($123.46)", sheet.Cell(2, 5).GetFormattedString());
                        Assert.AreEqual("$#,##0.00;($#,##0.00)", sheet.Cell(2, 5).Style.NumberFormat.Format);
                        Assert.AreEqual("bfb9c599-bc9e-4f97-ae59-25f2ca09cfdf", sheet.Cell(2, 6).Value);
                        Assert.AreEqual("bfb9c599-bc9e-4f97-ae59-25f2ca09cfdf", sheet.Cell(2, 6).GetFormattedString());
                        Assert.AreEqual("true", sheet.Cell(2, 7).Value);
                        Assert.AreEqual("true", sheet.Cell(2, 7).GetFormattedString());
                        Assert.AreEqual("false", sheet.Cell(2, 8).Value);
                        Assert.AreEqual("false", sheet.Cell(2, 8).GetFormattedString());
                        Assert.AreEqual("", sheet.Cell(2, 9).Value);
                        Assert.AreEqual("01:02:03", sheet.Cell(2, 10).Value);
                        Assert.AreEqual("01:02:03", sheet.Cell(2, 10).GetFormattedString());
                        Assert.AreEqual("", sheet.Cell(2, 10).Style.NumberFormat.Format);
                        Assert.AreEqual("2*3", sheet.Cell(2, 11).FormulaA1);
                        Assert.AreEqual((double)6, sheet.Cell(2, 11).Value);
                        Assert.AreEqual("6", sheet.Cell(2, 11).GetFormattedString());

                        // Verify third sheet
                        Assert.AreEqual(3, book.Worksheets.Count);
                        sheet = book.Worksheets.Worksheet(3);
                        Assert.AreEqual("third sheet", sheet.Cell(1, 1).Value);
                    }
                }
            }
        }
Exemple #2
0
        public void WriteCellTest()
        {
            using (var stream = new MemoryStream()) {
                using (var excel = new ExcelWriter(stream)) {
                    // Set up our row and column formats first
                    excel.SetRowFormat(1, fontStyle: FontStyle.Bold, fontSize: 16);
                    excel.SetColumnFormat(7, fontStyle: FontStyle.Italic, fontSize: 24);

                    var date = DateTime.Today;
                    var guid = new Guid("bfb9c599-bc9e-4f97-ae59-25f2ca09cfdf");
                    excel.WriteCell(0, 0, "one");
                    excel.WriteCell(0, 1, "one, two", fontStyle: FontStyle.Bold);
                    excel.WriteCell(0, 2, "one \"two\" three", fontSize: 18);
                    excel.WriteCell(0, 3, " one ", fontName: "Times");
                    excel.WriteCell(0, 4, date);
                    excel.WriteCell(0, 5, date, null, "d");
                    excel.WriteCell(0, 6, date, null, "D", FontStyle.Bold, horizontalAlign: ExcelAlignHorizontal.Right, verticalAlign: ExcelAlignVertical.Center);
                    excel.WriteCell(0, 7, (byte)1);
                    excel.WriteCell(0, 8, (short)2);
                    excel.WriteCell(0, 9, 3);
                    excel.WriteCell(0, 10, "=1+2");

                    excel.WriteCell(1, 0, (long)4);
                    excel.WriteCell(1, 1, (float)5);
                    excel.WriteCell(1, 2, (double)6);
                    excel.WriteCell(1, 3, (decimal)123.456, "C");
                    excel.WriteCell(1, 4, guid);
                    excel.WriteCell(1, 5, true);
                    excel.WriteCell(1, 6, false);
                    excel.WriteCell(1, 7, (string)null);
                    excel.WriteCell(1, 8, new TimeSpan(1, 2, 3));
                    excel.WriteCell(1, 9, new TimeSpan(1, 2, 3), "g");
                    excel.WriteCell(1, 10, "=2*3");

                    // Auto size the columns
                    excel.AdjustColumnsToContent(0, 10000);

                    // Override some column and row sizes
                    excel.SetRowHeight(1, 600);
                    excel.SetColumnWidth(1, 500);
                    excel.SetColumnWidth(11, 700);

                    // Change to third sheet and write a cell
                    excel.ChangeSheet(2);
                    excel.WriteCell(0, 0, "third sheet");

                    excel.Close();

                    stream.Position = 0;
                    using (var book = new C1XLBook()) {
                        book.Load(stream, FileFormat.OpenXml);
                        var sheet = book.Sheets[0];

                        // Verify row and column styles
                        Assert.AreEqual(FontStyle.Bold, sheet.Rows[1].Style.Font.Style);
                        Assert.AreEqual(16.0, sheet.Rows[1].Style.Font.SizeInPoints);
                        Assert.AreEqual(FontStyle.Italic, sheet.Columns[7].Style.Font.Style);
                        Assert.AreEqual(24.0, sheet.Columns[7].Style.Font.SizeInPoints);

                        // Check some automatically sizes column widths
                        Assert.AreEqual(2655, sheet.Columns[2].Width);
                        Assert.AreEqual(5541, sheet.Columns[4].Width);

                        // Verify the overridden row and column sizes
                        Assert.AreEqual(600, sheet.Rows[1].Height);
                        Assert.AreEqual(495, sheet.Columns[1].Width);
                        Assert.AreEqual(700, sheet.Columns[11].Width);

                        // Verify first row
                        Assert.AreEqual("one", sheet[0, 0].Value);
                        Assert.AreEqual("", sheet[0, 0].Style.Format);
                        Assert.AreEqual("one, two", sheet[0, 1].Value);
                        Assert.AreEqual(FontStyle.Bold, sheet[0, 1].Style.Font.Style);
                        Assert.AreEqual("one \"two\" three", sheet[0, 2].Value);
                        Assert.AreEqual(18.0, sheet[0, 2].Style.Font.SizeInPoints);
                        Assert.AreEqual(" one ", sheet[0, 3].Value);
                        Assert.AreEqual("Times New Roman", sheet[0, 3].Style.Font.Name);
                        Assert.AreEqual(date, sheet[0, 4].Value);
                        Assert.AreEqual(@"m\/D\/YYYY\ H:mm:ss\ AM/PM", sheet[0, 4].Style.Format);
                        Assert.AreEqual(date, sheet[0, 5].Value);
                        Assert.AreEqual(@"m\/D\/YYYY", sheet[0, 5].Style.Format);
                        Assert.AreEqual(date, sheet[0, 6].Value);
                        Assert.AreEqual(@"DDDD,\ mmmm\ D,\ YYYY", sheet[0, 6].Style.Format);
                        Assert.AreEqual(FontStyle.Bold, sheet[0, 6].Style.Font.Style);
                        Assert.AreEqual(XLAlignHorzEnum.Right, sheet[0, 6].Style.AlignHorz);
                        Assert.AreEqual(XLAlignVertEnum.Center, sheet[0, 6].Style.AlignVert);
                        Assert.AreEqual((double)1, sheet[0, 7].Value);
                        Assert.AreEqual((double)2, sheet[0, 8].Value);
                        Assert.AreEqual((double)3, sheet[0, 9].Value);
                        Assert.AreEqual("1+2", sheet[0, 10].Formula);
                        Assert.AreEqual(null, sheet[0, 10].Value);

                        // Verify second row
                        Assert.AreEqual((double)4, sheet[1, 0].Value);
                        Assert.AreEqual("", sheet[1, 0].Style.Format);
                        Assert.AreEqual((double)5, sheet[1, 1].Value);
                        Assert.AreEqual((double)6, sheet[1, 2].Value);
                        Assert.AreEqual(123.456, sheet[1, 3].Value);
                        Assert.AreEqual(@"$#,##0.00;($#,##0.00)", sheet[1, 3].Style.Format);
                        Assert.AreEqual("bfb9c599-bc9e-4f97-ae59-25f2ca09cfdf", sheet[1, 4].Value);
                        Assert.AreEqual("true", sheet[1, 5].Value);
                        Assert.AreEqual("false", sheet[1, 6].Value);
                        Assert.AreEqual(null, sheet[1, 7].Value);
                        Assert.AreEqual("01:02:03", sheet[1, 8].Value);
                        Assert.AreEqual("", sheet[1, 8].Style.Format);
                        Assert.AreEqual("01:02:03", sheet[1, 9].Value);
                        Assert.AreEqual("", sheet[1, 9].Style.Format);
                        Assert.AreEqual("2*3", sheet[1, 10].Formula);
                        Assert.AreEqual(null, sheet[1, 10].Value);

                        // Verify third sheet
                        Assert.AreEqual(3, book.Sheets.Count);
                        sheet = book.Sheets[2];
                        Assert.AreEqual("third sheet", sheet[0, 0].Value);
                    }
                }
            }
        }