Sé cómo desmontar un archivo pbix cambiando la extensión a .zip y luego enfréndolo. Si, a continuación, cambio la extensión de nuevo a .pbix, puedo abrirla en Power BI. Sin embargo, me gustaría modificar el archivo de diseño que se expone al desmontar el pbix. Pero cuando hago eso y cambio la extensión de la .zip a .pbix, recibo un mensaje de archivo dañado cuando intento abrir en Power BI. Esto sucede sin importar cuán pequeño e inocuo sea el cambio.
¿Hay alguna manera de hacer esto sin recibir el mensaje de archivo dañado?
hola a todos,
Estoy intentando modificar el contenido del archivo de diseño mediante el script de PowerShell. Cuando estoy intentando establecer contenido con -Codificación "unicode" . Después de eso, pbix no puede abrirse y mostrar el error corrpupted. También en notpad ++ se muestra "UTF-16 LE BOM codificación. Pero el final de Origial Layout era "utf-16 Little Endian.
Set-Content -Path "C:\PowerShell\newre\newRe\Report\Test" -Value $final -Codificación unicode
¿Puede alguien ayudarme a resolverlo?
Creé una idea para abordar esta pregunta, por favor vote:
Cambiar el nombre de las medidas del conjunto de datos no puede romper los informes de cliente (cambiar la referencia de nombre a ID)
https://ideas.powerbi.com/ideas/idea/?ideaid=649ec802-682b-ec11-b76a-281878e608e9
Estuve luchando con este problema recientemente, y mi solución es la siguiente:
- Cambiar la extensión de ".pbix" a ".zip"
- No descomprima el archivo ".zip" durante este proceso
- Extraer el archivo "Diseño" de la carpeta "Informe" en el archivo ".zip"
- Abra el archivo "Layout" con Notepad++. (MUY IMPORTANTE)
- Realizar sus modificaciones en el archivo de diseño
- Sustituir el antiguo archivo "Layout" por el nuevo
- Eliminar archivo "SecurityBindings" en el archivo ".zip"
- En el [Contents_type].xml eliminar el texto siguiente:
"<Override PartName="/SecurityBindings" ContentType="" />"
- Cambiar la extensión de ".zip a ".pbix"
- El archivo se abrirá sin pausas
¡Espero que ayude!
Sí, esto funcionó. Debido a esto se ahorra tanto tiempo. No sé cómo agradecerte.
¡Esto funcionó! ¡Muchas gracias! Me ahorró horas de tener que reconstruir el archivo
Descubrí que cuando estaba guardando, WriteAllTextAsync estaba preendiendo 2 bytes adicionales.. usando FlexHex pude ver que el original no tenía eso.
Para solucionar esto acabo de guardar con WriteAllTextAsync con Encoding.Unicode. Se ha vuelto a abrir como bytes y se ha guardado omitiendo los primeros 2 bytes en cuestión.
var serializedFile = JsonConvert.SerializeObject(_layoutModel);
await System.IO.File.WriteAllTextAsync(Filepath, serializedFile, Encoding.Unicode);
var asBytes = await System.IO.File.ReadAllBytesAsync(Filepath);
await System.IO.File.WriteAllBytesAsync(Filepath, asBytes.Skip(2).ToArray());
Al igual que una FYI, como otros han mencionado también necesitaba editar [Content_Type].xml y quitar la etiqueta Override con el PartName == "/SecurityBindings". Después de que powerbi lo cargó bien (ignorando las comprobaciones de validación que hizo).
Después de un poco de investigación me di cuenta de que es un marcador para el orden de bytes de unicode (había dicho que era esto, pero no lo sabía con seguridad hasta ahora). De todos modos, he actualizado el código presionado aquí ayer. (No se pudo encontrar un enlace de edición para mi publicación anterior)
public async Task Save()
{
var layoutFile = JsonConvert.SerializeObject(_layoutModel);
await System.IO.File.WriteAllTextAsync(Filepath, layoutFile, Encoding.Unicode);
IEnumerable<byte> layoutAsBytes = await System.IO.File.ReadAllBytesAsync(Filepath);
layoutAsBytes = StripUnicodeByteOrder(layoutAsBytes);
await System.IO.File.WriteAllBytesAsync(Filepath, layoutAsBytes.ToArray());
}
public static IEnumerable<Byte> StripUnicodeByteOrder(IEnumerable<byte> bytes)
{
if (bytes.ElementAt(0) == 0xFF && bytes.ElementAt(1) == 0xFE)
bytes = bytes.Skip(2);
return bytes;
}
No @instinct46,
¿Podría explicar dónde y cómo se debe ejecutar exactamente este código? En mi caso, no quiero cambiar el archivo de configuración, pero quiero cambiar el datamodelschema para agregar medidas mediante programación.
Gracias de antemano.
Cuando elimino "<Override PartName="/SecurityBindings" ContentType="" />" en el archivo raíz [Content_Types].xml, puedo editar el archivo PBIX y abrirlo sin problemas.
eh
Probé su solución, está funcionando muy bien !
muchas gracias !
hola
Cuando intento simplemente quitar el "<Override PartName="/SecurityBindings" ContentType="" />" en el archivo raíz [Content_Types].xml e intento volver a construir el pbix mediante la captura del archivo, todavía no puedo abrir el archivo. Por favor, aconseje.
Intente eliminar el archivo de enlaces de seguridad en lugar de quitar este código.
Además, cuando usted dice que zipping el archivo... Vea mi comentario de arriba. El archivo extraído no debe volver a comprimirse. En su lugar, el archivo layout extraído debe actualizarse y, a continuación, copiarse en la carpeta .zip original (eliminar archivo de enlaces de seguridad desde aquí). A continuación, se debe cambiar el nombre de nuevo a .pbix
Su doen't funciona para mí
Lo siento, no funciona para mí.
eh
Su trabajo!! Gracias.
El mismo problema aquí, pero incluso sin recomprimir el archivo, causa corrupción :(,
espero que sea posible tratar con el Diseño directamente un día.
Puedo cambiar el archivo de diseño haciendo lo siguiente:
Cambiar .pbix a .zip
Extraer archivo
Modificar y guardar el archivo layout extraído
Copiar el archivo layout modificado en la carpeta zipped original *
Cambiar el nombre .zip a .pbix
*Esto es necesario. Volver a envolver el archivo extraído causará corrupción
Yo secunda este número. ¿Alguien ya ha abierto una "idea" para este tema. Cambiar estos parámetros mediante programación sería una gran actualización de BI empresarial! O es todo un fastidio que podamos ver todos estos parámetros pero no podemos cambiarlo.
@v-yuezhe-msft en este caso abrir Power BI Desktop definitivamente no es una respuesta satisfactoria.
Pero, ¿qué cambios podemos hacer hasta ahora, y todos los demás qué cambios ha hecho en la cremallera?
Por ejemplo, es posible cambiar los recursos registrados.
Creé una idea para abordar esta pregunta, por favor vote:
Cambiar el nombre de las medidas del conjunto de datos no puede romper los informes de cliente (cambiar la referencia de nombre a ID)
https://ideas.powerbi.com/ideas/idea/?ideaid=649ec802-682b-ec11-b76a-281878e608e9
Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.
Welcome to the Power BI Community Show! Jeroen ter Heerdt talks about the importance of Data Modeling.
Mark your calendars and join us on Thursday, May 26 at 11a PDT for a great session with Ted Pattison!
User | Count |
---|---|
1 | |
1 | |
1 | |
1 | |
1 |