如果可能,最好是免费的。
我尝试过使用xml / html格式但是我遇到了一个问题,即excel会提示用户输入安全警告,因为内容与MIME类型不匹配(工作表已在网页上下载),没有看来这就好了。
答案 0 :(得分:0)
您可以使用以下解决方法来使用xml:Asp.NET Excel spreadsheet generation results in “different file format than extension error” when opening in excel, but the spreadsheet shows correctly
答案 1 :(得分:0)
<强> [更新] 强>
从Codeplex下载ExcelPackage库。这是System.IO.Packaging
的包装器,用于创建Open XML格式文件(docx,xlsx,pptx)。
添加的样本不包含颜色格式,但请检查网站上的样本是否使用模板,或阅读Codeplex上有关为每个单元格设置更多样式选项的qa的讨论。
public void CreateExcel()
{
FileInfo newFile = new FileInfo(@"C:\temp\test.xlsx");
using (ExcelPackage xlPackage = new ExcelPackage(newFile))
{
ExcelWorksheet worksheet = xlPackage.Workbook.Worksheets.Add("People");
// Titles in Column 1
worksheet.Cell(1, 1).Value = "Name";
worksheet.Cell(3, 1).Value = "Tom";
worksheet.Cell(4, 1).Value = "Henry";
worksheet.Column(1).Width = 20; // set column 1 width
// Values in column 2
worksheet.Cell(1, 2).Value = "Age";
ExcelCell cell1 = worksheet.Cell(3, 2);
cell1.Value = "42"; // Age of Tom
ExcelCell cell2 = worksheet.Cell(4, 2);
cell2.Value = "19"; // Age of Henry
string calcStartAddress = cell1.CellAddress;
string calcEndAddress = cell2.CellAddress;
worksheet.Cell(5, 2).Formula = string.Format("SUM({0}:{1})",calcStartAddress, calcEndAddress);
worksheet.Cell(6, 2).Formula = string.Format("AVERAGE({0}:{1})", calcStartAddress, calcEndAddress);
xlPackage.Save();
}
}
<小时/> [原始答案]
您可以使用ADO.Net。
下载Microsoft Access Database Engine 2010 Redistributable并查看有关如何使用ADO.Net读取/写入Excel文件的this post。
只需将连接字符串更改为
即可 Provider=Microsoft.ACE.OLEDB.12.0; data source=pathtoyourfile; Extended Properties=Excel 12.0;
使用v12和ACE.OLEDB连接而不是Jet.OLEDB。
答案 2 :(得分:0)
基于这个问题,我不确定你是否需要支持旧的2003(.xls)版本,但是我最近使用了codeplex中的ExcelPackage
库来创建xlsx OOXML,它对我来说很有用需要。