有没有一个程序化的解决方案,这不涉及服务器上的Office?如何以编程方式将.xls和.csv文件转换为.xlsx?
更新: 该解决方案将被部署在.NET店,所以现在PHP和Java的方法是上不了台面的(虽然我留下了深刻印象库本身)。
我们将以csv,.xls和.xlsx格式接收需要解析并将其数据推入数据库的文档。我们正在计划使用OpenXML SDK来实现所有的解析优势,并希望仅通过一种文件类型进行操作。
有没有一个程序化的解决方案,这不涉及服务器上的Office?如何以编程方式将.xls和.csv文件转换为.xlsx?
更新: 该解决方案将被部署在.NET店,所以现在PHP和Java的方法是上不了台面的(虽然我留下了深刻印象库本身)。
我们将以csv,.xls和.xlsx格式接收需要解析并将其数据推入数据库的文档。我们正在计划使用OpenXML SDK来实现所有的解析优势,并希望仅通过一种文件类型进行操作。
对于Java,您可以使用Apache POI library来实现此目的。
HSSF是POI Project的Excel '97(-2007)文件格式的纯Java实现。
XSSF是POI Project的Excel 2007 OOXML(.xlsx)文件格式的纯Java实现。
我用它在.xls
和.xlsx
文件的完整组合,以阅读,我总是输出.xlsx
。
对于.csv
文件,使用Super CSV library导入并使用上面的Apache POI库导出。
Super Csv的主要动机是为Java提供最好,最快速,最适合程序员的免费CSV包。
或者,如果你想有一个PHP的解决方案,而不是Java
,你可以使用解析列使用PHPExcel(http://www.phpexcel.net)。
object columnValue = ws.Cells[i, ColIndex, i, ColIndex].Value; // get Specific cell.
您可以使用下面的方法进行的.csv,XLSX,.txt文件。
public yourReturnType compute()
{
#region .XLSX Section
if (FilePath.FullName.Contains(".xlsx") || FilePath.FullName.Contains(".xls"))
{
// Open and read the XlSX file.
using (var package = new ExcelPackage(FilePath))
{
ExcelWorkbook wb = package.Workbook; // Get the work book in the file
if (wb != null)
{
if (wb.Worksheets.Count > 0)
{
ExcelWorksheet ws = wb.Worksheets.First(); // Get the first worksheet
yourParseCode(ws);
}
} // if End.
} // using end.
}
#endregion
#region .CSV Section
if (FilePath.FullName.Contains(".csv") || FilePath.FullName.Contains(".txt"))
{
CSVParser c = new CSVParser(FilePath);
DataTable dt = c.ReadCSVFile();
using (ExcelPackage pck = new ExcelPackage())
{
ExcelWorksheet ws = pck.Workbook.Worksheets.Add("temporary");
ws.Cells["A1"].LoadFromDataTable(dt, true);
yourParseCode (ws);
////pck.Save(); // no need to save this temporary sheet.
}
}
#endregion
return (yourReturnType);
}
对于CSV文件,我会建议的http://kbcsv.codeplex.com/组合来读取csv文件到一个DataTable和EPPPLUS利用其.FromDataTable方法将其转换为XLSX文件。 我工作很好,速度非常快。 对于读取xls文件没有免费的实现,我知道:(
这些问题是否有帮助吗?http://stackoverflow.com/questions/1486256/creating-excel-or-excel-compatible-spreadsheets-on -the-server-side-in-c http://stackoverflow.com/questions/1642702/generating-nicely-formatted-excel-files-in-asp-net-without-having-excel-on-server – 2010-05-14 19:37:10
最好的答案取决于打算使用或熟悉的编程语言,我也会提及它们,它也可能有助于您更好地了解上下文,它是客户端应用程序吗?Swing还是Web应用程序?JSP/Servlet还是PHP?等等 – BalusC 2010-05-15 17:50:58