一、借助第三方插件
1、新建项目并引用=》com组件=》excel libary
或者时使用第三方开源freespire.xls
Workbook book = new Workbook();
Worksheet sheet = book.Worksheets[0];
sheet.Name = "First Page";
sheet.Range[1, 1].Text = "我的销售额 2019";
sheet.Range[1, 2].Value = "月份";
sheet.Range[1, 3].Value = "销售额";
sheet.Range[1, 4].Value = "利润率";
book.SaveToFile("1234.xlsx", ExcelVersion.Version2013);
C#使用FreeSpire.XLS创建Excel_谷凯Jump的博客-优快云博客_c# 创建excel
2、嵌入式互操作更改为false
Application:Excel实例
WorkBook:相当于工作薄
WorkSheet:相当于工作表
Range:区域块
新建一个工作表:
excelapplication = new Application();
book = excelapplication.Workbooks.Add();
Worksheet sheet1 = (Worksheet)book.Worksheets.Add();
sheet1.Name = "lubin";
book.SaveAs(@"C:\Users\Lenovo\Pictures\PS2PNG\helloworld.xlsx");
excelapplication.Quit();
增加一个工作表
Workbook workbook = excelapplication.Workbooks.Open(@"C:\Users\Lenovo\Pictures\PS2PNG\helloworld1.xlsx");
Worksheet sheet1 = (Worksheet)workbook.Worksheets.Add();
sheet1.Name = "admin";
sheet1.Tab.Color = XlRgbColor.rgbRed;
workbook.Save() ;
excelapplication.Quit();
设置表的合并并居中
xlLineStyle:https://blog.youkuaiyun.com/beyondqd/article/details/51580254
/// <summary>
/// 合并居中
/// </summary>
public void Mergon(string title)
{
Workbook workbook = excelapplication.Workbooks.Open(@"C:\Users\Lenovo\Pictures\PS2PNG\"+this.Name+".xlsx");
Worksheet sheet1 = (Worksheet)workbook.Worksheets.Add();
sheet1.Name = "admin";
sheet1.Tab.Color = XlRgbColor.rgbRed;
Range range = sheet1.Range[sheet1.Cells[1, 1], sheet1.Cells[2, 10]];
range.Merge();
range.HorizontalAlignment = Constants.xlCenter;
range.Value = title;
range.Font.Size = 20;
range.Font.Bold = true;
sheet1.Cells[3, 1] = "ID";
Range r1 = sheet1.Range[sheet1.Cells[3,1], sheet1.Cells[3, 1]];
r1.HorizontalAlignment = Constants.xlCenter;
sheet1.Cells[3, 2] = "名称";
sheet1.Cells[3, 3] = "单价";
sheet1.Cells[3, 4] = "数量";
workbook.Save();
excelapplication.Quit();
}
二、OLEDB
优点:读取Excel速度相对调用COM组件来讲是非常的快,不需要安装Office Excel就可以使用。
缺点:对于Excel本身一些复杂的逻辑,如单元格合并,单元格着色等无法支持。
三、
使用com组件
分析:
优势:可以非常灵活的读取Excel中的数据,而且使用方式很丰富,基本上凡是打开Office Excel软件能够用鼠标点击完成的事,使用VSTO调用COM组件都能完成,而且可以调用Excel自身带的宏方法等。
缺点:机器上必须安装Excel,最重要的一点因为是基于单元格方式读取的,所以数据很慢。