关于C#读取Excel的单元格高度
手头没有开发环境,想确认如果想用C#读取Excel的某个单元格高度,是否必须安装Excel软件呢?仅仅调用Excel的相关dll是否可以做到?
最好能给出代码示例,谢谢
Excel的版本是2010 excel 单元格高度 dll --------------------编程问答-------------------- 不一定要安装,但要用到第三方软件的dll文件,这个文件在开发项目添加引用后,发布后一起打包到bin文件夹下。
三方软件名称:GemBox.Spreadsheet
动态链接库文件:GemBox.Spreadsheet.dll
我们公司就用这个,发布到服务器上时,不需要安装office
using GemBox.Spreadsheet;
........
...
public override void ExportDocumentProcess()
{
SpreadsheetInfo.SetLicense(BOSUtility.GetGemBoxExcelKey()); -->获取GemBox.Spreadsheet系列号
xlApp = new ExcelFile();
xlApp.LoadXls(this.ExportFileAppplicationPath);
ExcelWorksheet xlWorkSheet = xlApp.Worksheets[0];
int intTotalCount = DataSource.Count;
int starRows = 5;
ExcelRow row = xlWorkSheet.Rows[starRows];
var list = this.DataSource.GroupBy(t => t.IndvCourseName.Trim()).Select(g =>
{
return new
{
IndvCourseName = g.Key,
StudentCount = g.Count(),
Amount = g.Sum(t => t.Price)
};
});
int i = 0;
foreach (var item in list)
{
xlWorkSheet.Cells[starRows, 0].Value = item.IndvCourseName;
xlWorkSheet.Cells[starRows, 1].Value = item.StudentCount;
xlWorkSheet.Cells[starRows, 2].Value = "aaaaaaaaaaaaa";
xlWorkSheet.Cells[starRows, 3].Value = "bbbbbbbbbbbbbbbbb";
xlWorkSheet.Cells[starRows, 4].Value = item.Amount;
if (i < list.Count() - 1)
{
xlWorkSheet.Rows[starRows].InsertCopy(1, row);
starRows++;
}
i++;
}
xlApp.SaveXls(this.ExportFileAppplicationPath); -->保存文件
}
public override void ExportDocumentRelease()
{
releaseObject(xlApp);
}
private void releaseObject(object obj)
{
try
{
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj);
obj = null;
}
catch
{
obj = null;
}
finally
{
GC.Collect();
}
}
--------------------编程问答-------------------- 非常感谢,那是不是说如果不用第三方dll的话,肯定要安装excel了? --------------------编程问答-------------------- Excel软件?你没有office? --------------------编程问答--------------------
公司的服务器没有Office的License预算呀,不能装
补充:.NET技术 , C#