如何在没有安装微软Excel环境下操作Excel文件?
生活随笔
收集整理的這篇文章主要介紹了
如何在没有安装微软Excel环境下操作Excel文件?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在以前接觸的項目中,由于很多客戶對微軟Excel的操作比較熟練,客戶經常要求系統支持對Excel文件的讀寫。用.NET傳統方法對Excel進行讀寫時,往往會涉及到不同版本兼容的問題,導致在本地測試一切正常,但是到客戶那經常會出現各種問題。后來發現一個Spire.XLS的NET庫,可以很方便的對不同版本的Excel文件進度操作,還可以生成各種常見的圖形。下面結合一個簡單的例子,看一下效果:
1、首先要安裝Spire.XLS,可以自定百度,然后建立一個windows應用程序WinExcelDemo,注意添加相關dll引用:
2、編寫代碼,這里當主界面打開時,就開始進行Excel的數據準備和文件生產操作,代碼如下:
1 using System;
2 using System.Collections.Generic;
3 using System.ComponentModel;
4 using System.Data;
5 using System.Drawing;
6 using System.Linq;
7 using System.Text;
8 using System.Threading.Tasks;
9 using System.Windows.Forms;
10
11 namespace WinExcelDemo
12 {
13 using Spire.Xls;
14 using Spire.Xls.Charts;
15 public partial class Form1 : Form
16 {
17 public Form1()
18 {
19 InitializeComponent();
20 }
21
22 private void Form1_Load(object sender, EventArgs e)
23 {
24 Run();
25 }
26 private void Run()
27 {
28 Workbook workbook = new Workbook();
29
30 //初始化 工作簿worksheet
31 workbook.CreateEmptySheets(1);
32 Worksheet sheet = workbook.Worksheets[0];
33 sheet.Name = "數據";
34 sheet.GridLinesVisible = false;
35
36 //創建圖形數據
37 CreateChartData(sheet);
38 //在工作簿中添加一個新的圖表
39 Chart chart = sheet.Charts.Add();
40
41 //設置數據的區域
42 chart.DataRange = sheet.Range["A1:C5"];
43 chart.SeriesDataFromRange = false;
44
45 //設置圖的位置
46 chart.LeftColumn = 1;
47 chart.TopRow = 6;
48 chart.RightColumn = 11;
49 chart.BottomRow = 29;
50 //圖類型
51 chart.ChartType = ExcelChartType.Area;
52 //圖標題
53 chart.ChartTitle = "Sales market by country";
54 chart.ChartTitleArea.IsBold = true;
55 chart.ChartTitleArea.Size = 12;
56
57 chart.PrimaryCategoryAxis.Title = "Country";
58 chart.PrimaryCategoryAxis.Font.IsBold = true;
59 chart.PrimaryCategoryAxis.TitleArea.IsBold = true;
60
61 chart.PrimaryValueAxis.Title = "Sales(in Dollars)";
62 chart.PrimaryValueAxis.HasMajorGridLines = false;
63 chart.PrimaryValueAxis.TitleArea.TextRotationAngle = 90;
64 chart.PrimaryValueAxis.MinValue = 1000;
65 chart.PrimaryValueAxis.TitleArea.IsBold = true;
66
67
68 foreach (Spire.Xls.Charts.ChartSerie cs in chart.Series)
69 {
70 //不同顏色
71 cs.Format.Options.IsVaryColor = true;
72 //顯示數據標簽
73 cs.DataPoints.DefaultDataPoint.DataLabels.HasValue = true;
74 }
75 //Legend位置
76 chart.Legend.Position = LegendPositionType.Top;
77 workbook.SaveToFile("Sample.xls");
78 ExcelDocViewer(workbook.FileName);
79 }
80
81 private void CreateChartData(Worksheet sheet)
82 {
83 //Country
84 sheet.Range["A1"].Value = "Country";
85 sheet.Range["A2"].Value = "Cuba";
86 sheet.Range["A3"].Value = "Mexico";
87 sheet.Range["A4"].Value = "France";
88 sheet.Range["A5"].Value = "German";
89
90 //Jun
91 sheet.Range["B1"].Value = "Jun";
92 sheet.Range["B2"].NumberValue = 6000;
93 sheet.Range["B3"].NumberValue = 8000;
94 sheet.Range["B4"].NumberValue = 9000;
95 sheet.Range["B5"].NumberValue = 8500;
96
97 //Jun
98 sheet.Range["C1"].Value = "Aug";
99 sheet.Range["C2"].NumberValue = 3000;
100 sheet.Range["C3"].NumberValue = 2000;
101 sheet.Range["C4"].NumberValue = 2300;
102 sheet.Range["C5"].NumberValue = 4200;
103
104 //Style
105 sheet.Range["A1:C1"].Style.Font.IsBold = true;
106 sheet.Range["A2:C2"].Style.KnownColor = ExcelColors.LightYellow;
107 sheet.Range["A3:C3"].Style.KnownColor = ExcelColors.LightGreen1;
108 sheet.Range["A4:C4"].Style.KnownColor = ExcelColors.LightOrange;
109 sheet.Range["A5:C5"].Style.KnownColor = ExcelColors.LightTurquoise;
110
111 //Border
112 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeTop].Color = Color.FromArgb(0, 0, 128);
113 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeTop].LineStyle = LineStyleType.Thin;
114 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeBottom].Color = Color.FromArgb(0, 0, 128);
115 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeBottom].LineStyle = LineStyleType.Thin;
116 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeLeft].Color = Color.FromArgb(0, 0, 128);
117 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeLeft].LineStyle = LineStyleType.Thin;
118 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeRight].Color = Color.FromArgb(0, 0, 128);
119 sheet.Range["A1:C5"].Style.Borders[BordersLineType.EdgeRight].LineStyle = LineStyleType.Thin;
120
121 sheet.Range["B2:C5"].Style.NumberFormat = ""$"#,##0";
122 }
123
124 private void ExcelDocViewer(string fileName)
125 {
126 try
127 {
128 //打開生成的Excel
129 System.Diagnostics.Process.Start(fileName);
130 }
131 catch { }
132 }
133 }
134 }
3、運行代碼,可以看到如下結果:
4、總結
上面只是該庫很小一部分功能,該庫還能對Excel進行分組、支持VBA擴展等功能,該庫雖然強大,但是不開源,是商業軟件。不過經過了解,Spire.XLS也提供免費版,只不過免費版有一個Excel文檔不能超過5個sheet的限制。對于一些小項目,免費版也完全夠用可以考慮。至于較大應用,則需要商業版。NOPI是開源的Excel庫,也可以方便的進行Excel讀寫操作且無需安裝office,但功能不及Spire.XLS全面。開源和非開源,存在即合理,各有優勢。
總結
以上是生活随笔為你收集整理的如何在没有安装微软Excel环境下操作Excel文件?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jenkins配置与使用
- 下一篇: 中国银行信用卡宽限期有多久?逾期有什么影