هل يمكنني تعيين عرض تلقائي على جدول بيانات مفتوح من XML SDK دون حساب العروض الفردية؟

StackOverflow https://stackoverflow.com/questions/2760168

سؤال

أنا أعمل على إنشاء ملف Excel من مجموعة كبيرة من البيانات باستخدام Open XML SDK. لقد تمكنت أخيرًا من الحصول على عقدة الأعمدة الوظيفية ، والتي تحدد جميع الأعمدة التي سيتم استخدامها بالفعل في الملف. هناك خاصية "BestFit" يمكن ضبطها على صواب ، ولكن يبدو أن هذا لا يفعل أي شيء. هل هناك طريقة لتعيين هذه الأعمدة تلقائيًا على "أفضل ملاءمة" ، بحيث عندما يفتح شخص ما هذا الملف ، فهي بالفعل بحجم المبلغ الصحيح؟ أم أنني مجبر على حساب مدى عرض كل عمود مسبقًا ، وتعيين هذا في الكود؟

هل كانت مفيدة؟

المحلول

الطريقة التي أفهم بها المواصفات و هذه المناقشة MSDN, BestFit يخبرك أن العرض كان محسوبًا تلقائيًا في Excel ، لكنه لا يخبر Excel أنه ينبغي حسابه مرة أخرى في المرة القادمة التي يتم فيها فتحها.

كما يشير "Goodol" في هذه المناقشة ، أعتقد أنه لا يمكن حساب العرض إلا عند عرض العمود ، لأنه يعتمد على المحتويات ، والخط المستخدم ، ومعلمات النمط الأخرى ... لذلك حتى لو كنت تريد أن تحلل مسبقًا عرض نفسك ، كن على دراية بأن هذا مجرد تقدير ، وقد يكون من الخطأ إذا كانت المحتويات تحتوي على الكثير من الشخصيات "الواسعة". أو هل يقوم XML SDK المفتوح بذلك؟

نصائح أخرى

أنا استخدم epplus الذي أوصي به بشدة. استغرق مني بعض الوقت لمعرفة كيفية القيام بذلك باستخدام ذلك ، إليك ما توصلت إليه:

// Get your worksheet in "sheet" variable

// Set columns to auto-fit
for (int i = 1; i <= sheet.Dimension.Columns; i++)
{
    sheet.Column(i).AutoFit();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top