我需要将使用C#将.xls文件转换为.xlsx而不使用Microsoft Office的帮助。如何使用C#将.xls文件转换为.xlsx并且未安装Microsoft Office?
1
A
回答
2
通过一些编码工作,您可以使用NPOI库来读取XLS数据并将其写回为XLSX。
另一种方式(XLSX到XLS)显示在Convert xlsx file to xls using NPOI in c#中。这可能是看到原则的一个很好的起点。
+0
我使用过你的建议,并在此发布重写转换器http://stackoverflow.com/a/41172690/119843 –
+0
@ er-v非常感谢您的反馈。 –
0
使用下面的查询,
private static string GetConnectionString()
{
Dictionary<string, string> props = new Dictionary<string, string>();
// XLSX - Excel 2007, 2010, 2012, 2013
props["Provider"] = "Microsoft.ACE.OLEDB.12.0;";
props["Extended Properties"] = "Excel 12.0 XML";
props["Data Source"] = @"D:\data\users\liran-fr\Desktop\Excel\Received\Orbotech_FW__ARTEMIS-CONTROL-AG__223227__0408141043__95546.xls";
// XLS - Excel 2003 and Older
//props["Provider"] = "Microsoft.Jet.OLEDB.4.0";
//props["Extended Properties"] = "Excel 8.0";
//props["Data Source"] = "C:\\MyExcel.xls";
StringBuilder sb = new StringBuilder();
foreach (KeyValuePair<string, string> prop in props)
{
sb.Append(prop.Key);
sb.Append('=');
sb.Append(prop.Value);
sb.Append(';');
}
return sb.ToString();
}
private static DataSet ReadExcelFile()
{
DataSet ds = new DataSet();
string connectionString = GetConnectionString();
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
// Get all Sheets in Excel File
DataTable dtSheet = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
// Loop through all Sheets to get data
foreach (DataRow dr in dtSheet.Rows)
{
string sheetName = dr["TABLE_NAME"].ToString();
//if (!sheetName.EndsWith("$"))
// continue;
// Get all rows from the Sheet
cmd.CommandText = "SELECT * FROM [" + sheetName + "]";
DataTable dt = new DataTable();
dt.TableName = sheetName;
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
da.Fill(dt);
ds.Tables.Add(dt);
}
cmd = null;
conn.Close();
}
return ds;
}
using (ExcelPackage epackage = new ExcelPackage())
{
ExcelWorksheet excel = epackage.Workbook.Worksheets.Add("ExcelTabName");
DataSet ds = ReadExcelFile();
DataTable dtbl = ds.Tables[0];
excel.Cells["A1"].LoadFromDataTable(dtbl, true);
System.IO.FileInfo file = new System.IO.FileInfo(@"D:\data\users\liran-fr\Desktop\Excel\Received\test.xlsx");
epackage.SaveAs(file);
}
+0
您的解决方案需要安装不受OP要求的Excel。 –
相关问题
- 1. C#转换的.xlsx为.xls
- 2. 转换XLSX到XLS使用Microsoft Office Compitablity包的excelcnv
- 3. 是否可以使用Microsoft Graph Excel API将xls文件转换为xlsx?
- 4. C#将Excel 2007(xlsx)文件转换为Excel 2003(xls)文件
- 5. 将xls转换为xlsx并删除旧文件
- 6. 如何将csv文件转换为sapui5中的xls或xlsx?
- 7. 将Excel xlsx转换为Java中的xls
- 8. 将Microsoft Office文档转换为文本
- 9. 如何使用python将xls转换为xlsx?
- 10. 将文件夹中的XLS/XLSX文件转换为CSV
- 11. 在没有安装Office的情况下在c#中导入xls和xlsx文件
- 12. 如何将xls文件转换为xlsx文件并使用SSIS保存到文件夹中?
- 13. Excel宏将xlsx转换为xls
- 14. 将.xls转换为.xlsx的代码
- 15. 如何以编程方式将.xls和.csv文件转换为.xlsx?
- 16. 如何将xls文件转换为xml?
- 17. 如何将XSD文件转换为XLS
- 18. 如何将.xlsx文件转换为.mpp文件在c#
- 19. 如何使用JXL API将.xls文件转换为.htm文件?
- 20. 将XLS文件转换为XLSX中的错误
- 21. 将多个.xls文件转换为ssis中的.xlsx
- 22. PHP将Excel文件从“.xls”转换为“.xlsx”
- 23. 将多个Excel .xls文件转换为.xlsx格式
- 24. 如何使用PowerShell将多个xls文件转换为csv?
- 25. Python将Excel文件(xls或xlsx)转换为ODS或从ODS转换为
- 26. 如何在C#中以编程方式将xlsx文件转换为2003 xls文件?
- 27. xlrd库不能使用xlsx files.any方式将xlsx转换为xls使用python?
- 28. 我可以使用okapi和java将doc转换为docx,ppt转换为pptx,xls转换为xlsx,反之亦然?
- 29. 如何将Microsoft Excel xlsx文件转换为mysql数据库.sql文件
- 30. 如何使用c#将.xls文件转换为.xlsx,然后使用epplus编辑.xlsx文件,如使用epplus着色单元格
什么你尝试自己吗?请阅读[本页如何提问](http://stackoverflow.com/help/mcve)并编辑您的问题。 –