Я пытался преобразовать файл .xls в .xlsx, не имея зависимости от компонента Office.Я следовал за c-sharp-convert-xls-file-to-xlsx-без-офис-компонентов
Он преобразует файл из xls в xlsx, но все форматирование теряется.Я пробовал другие библиотеки, такие как Spire.XLS, NPOI и т. Д. Но ни одна не может сделать точную копию .xls в .xlsx.Пожалуйста, помогите мне с форматированием.Ниже приведен код по ссылке, которую я использовал для конвертации:
XLWorkbook workbook = new XLWorkbook();
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();
}
workbook.AddWorksheet(ds);
return ds;